@ehfuse/react-vfx 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +27 -0
  2. package/dist/VfxTyping.d.ts +34 -0
  3. package/dist/VfxTyping.d.ts.map +1 -0
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.esm.js +103 -99
  7. package/dist/index.esm.js.map +4 -4
  8. package/dist/index.js +124 -120
  9. package/dist/index.js.map +4 -4
  10. package/dist/types.d.ts +19 -0
  11. package/dist/types.d.ts.map +1 -1
  12. package/package.json +1 -4
  13. package/dist/VfxDiv.backup.d.ts +0 -28
  14. package/dist/VfxDiv.backup.d.ts.map +0 -1
  15. package/dist/VfxText.backup.d.ts +0 -28
  16. package/dist/VfxText.backup.d.ts.map +0 -1
  17. package/dist/border-effects/dash-flow.d.ts +0 -11
  18. package/dist/border-effects/dash-flow.d.ts.map +0 -1
  19. package/dist/border-effects/dash-rotate.d.ts +0 -12
  20. package/dist/border-effects/dash-rotate.d.ts.map +0 -1
  21. package/dist/border-effects/index.d.ts +0 -16
  22. package/dist/border-effects/index.d.ts.map +0 -1
  23. package/dist/border-effects/pulse.d.ts +0 -11
  24. package/dist/border-effects/pulse.d.ts.map +0 -1
  25. package/dist/border-effects/sparkle.d.ts +0 -12
  26. package/dist/border-effects/sparkle.d.ts.map +0 -1
  27. package/dist/border-effects/special.d.ts +0 -8
  28. package/dist/border-effects/special.d.ts.map +0 -1
  29. package/dist/border-effects/types.d.ts +0 -25
  30. package/dist/border-effects/types.d.ts.map +0 -1
  31. package/dist/particles/balloons.d.ts +0 -6
  32. package/dist/particles/balloons.d.ts.map +0 -1
  33. package/dist/particles/bubbles.d.ts +0 -7
  34. package/dist/particles/bubbles.d.ts.map +0 -1
  35. package/dist/particles/coins.d.ts +0 -6
  36. package/dist/particles/coins.d.ts.map +0 -1
  37. package/dist/particles/confetti.d.ts +0 -6
  38. package/dist/particles/confetti.d.ts.map +0 -1
  39. package/dist/particles/dust.d.ts +0 -6
  40. package/dist/particles/dust.d.ts.map +0 -1
  41. package/dist/particles/electric.d.ts +0 -6
  42. package/dist/particles/electric.d.ts.map +0 -1
  43. package/dist/particles/explosion.d.ts +0 -6
  44. package/dist/particles/explosion.d.ts.map +0 -1
  45. package/dist/particles/firefly.d.ts +0 -6
  46. package/dist/particles/firefly.d.ts.map +0 -1
  47. package/dist/particles/fireworks.d.ts +0 -6
  48. package/dist/particles/fireworks.d.ts.map +0 -1
  49. package/dist/particles/fog.d.ts +0 -6
  50. package/dist/particles/fog.d.ts.map +0 -1
  51. package/dist/particles/hearts.d.ts +0 -9
  52. package/dist/particles/hearts.d.ts.map +0 -1
  53. package/dist/particles/index.d.ts +0 -30
  54. package/dist/particles/index.d.ts.map +0 -1
  55. package/dist/particles/leaves.d.ts +0 -6
  56. package/dist/particles/leaves.d.ts.map +0 -1
  57. package/dist/particles/lightning.d.ts +0 -6
  58. package/dist/particles/lightning.d.ts.map +0 -1
  59. package/dist/particles/magic.d.ts +0 -6
  60. package/dist/particles/magic.d.ts.map +0 -1
  61. package/dist/particles/matrix.d.ts +0 -6
  62. package/dist/particles/matrix.d.ts.map +0 -1
  63. package/dist/particles/portal.d.ts +0 -6
  64. package/dist/particles/portal.d.ts.map +0 -1
  65. package/dist/particles/rain.d.ts +0 -6
  66. package/dist/particles/rain.d.ts.map +0 -1
  67. package/dist/particles/sakura.d.ts +0 -6
  68. package/dist/particles/sakura.d.ts.map +0 -1
  69. package/dist/particles/smoke.d.ts +0 -6
  70. package/dist/particles/smoke.d.ts.map +0 -1
  71. package/dist/particles/snow.d.ts +0 -6
  72. package/dist/particles/snow.d.ts.map +0 -1
  73. package/dist/particles/sparkle.d.ts +0 -6
  74. package/dist/particles/sparkle.d.ts.map +0 -1
  75. package/dist/particles/stars.d.ts +0 -7
  76. package/dist/particles/stars.d.ts.map +0 -1
  77. package/dist/particles/types.d.ts +0 -40
  78. package/dist/particles/types.d.ts.map +0 -1
  79. package/dist/slide-effects/drift.d.ts +0 -12
  80. package/dist/slide-effects/drift.d.ts.map +0 -1
  81. package/dist/slide-effects/fade.d.ts +0 -10
  82. package/dist/slide-effects/fade.d.ts.map +0 -1
  83. package/dist/slide-effects/flip.d.ts +0 -8
  84. package/dist/slide-effects/flip.d.ts.map +0 -1
  85. package/dist/slide-effects/index.d.ts +0 -28
  86. package/dist/slide-effects/index.d.ts.map +0 -1
  87. package/dist/slide-effects/rotate.d.ts +0 -9
  88. package/dist/slide-effects/rotate.d.ts.map +0 -1
  89. package/dist/slide-effects/slide.d.ts +0 -9
  90. package/dist/slide-effects/slide.d.ts.map +0 -1
  91. package/dist/slide-effects/special.d.ts +0 -10
  92. package/dist/slide-effects/special.d.ts.map +0 -1
  93. package/dist/slide-effects/types.d.ts +0 -25
  94. package/dist/slide-effects/types.d.ts.map +0 -1
  95. package/dist/slide-effects/zoom.d.ts +0 -11
  96. package/dist/slide-effects/zoom.d.ts.map +0 -1
  97. package/dist/text-effects/blink.d.ts +0 -6
  98. package/dist/text-effects/blink.d.ts.map +0 -1
  99. package/dist/text-effects/blur.d.ts +0 -6
  100. package/dist/text-effects/blur.d.ts.map +0 -1
  101. package/dist/text-effects/bounce.d.ts +0 -6
  102. package/dist/text-effects/bounce.d.ts.map +0 -1
  103. package/dist/text-effects/fade.d.ts +0 -6
  104. package/dist/text-effects/fade.d.ts.map +0 -1
  105. package/dist/text-effects/flowing.d.ts +0 -6
  106. package/dist/text-effects/flowing.d.ts.map +0 -1
  107. package/dist/text-effects/fly-in.d.ts +0 -6
  108. package/dist/text-effects/fly-in.d.ts.map +0 -1
  109. package/dist/text-effects/glitch.d.ts +0 -6
  110. package/dist/text-effects/glitch.d.ts.map +0 -1
  111. package/dist/text-effects/index.d.ts +0 -28
  112. package/dist/text-effects/index.d.ts.map +0 -1
  113. package/dist/text-effects/jitter.d.ts +0 -6
  114. package/dist/text-effects/jitter.d.ts.map +0 -1
  115. package/dist/text-effects/neon.d.ts +0 -6
  116. package/dist/text-effects/neon.d.ts.map +0 -1
  117. package/dist/text-effects/pulse.d.ts +0 -11
  118. package/dist/text-effects/pulse.d.ts.map +0 -1
  119. package/dist/text-effects/rainbow.d.ts +0 -6
  120. package/dist/text-effects/rainbow.d.ts.map +0 -1
  121. package/dist/text-effects/shake.d.ts +0 -6
  122. package/dist/text-effects/shake.d.ts.map +0 -1
  123. package/dist/text-effects/spin.d.ts +0 -8
  124. package/dist/text-effects/spin.d.ts.map +0 -1
  125. package/dist/text-effects/swing.d.ts +0 -7
  126. package/dist/text-effects/swing.d.ts.map +0 -1
  127. package/dist/text-effects/types.d.ts +0 -22
  128. package/dist/text-effects/types.d.ts.map +0 -1
  129. package/dist/text-effects/wave.d.ts +0 -6
  130. package/dist/text-effects/wave.d.ts.map +0 -1
  131. package/dist/text-effects/zoom.d.ts +0 -6
  132. package/dist/text-effects/zoom.d.ts.map +0 -1
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze(""),[n,s]=ze(0);return Ie(()=>{t==="typing"?(o(""),s(0)):o(e)},[t,e,r]),Ie(()=>{if(t==="typing"&&r&&e){let l,c,m=()=>{o(""),s(0);let y=0;l=setInterval(()=>{y<e.length?(o(e.slice(0,y+1)),s(y+1),y++):(clearInterval(l),c=setTimeout(()=>{m()},2e3))},100)};return m(),()=>{clearInterval(l),clearTimeout(c)}}else t==="typing"&&!r&&(o(""),s(0))},[t,r,e]),{textToShow:t==="typing"?a:e,currentIndex:n,getEffectStyle:()=>r?{}:{opacity:0},isTypingComplete:n>=e.length}};var Ne={keyframes:`
1
+ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze(""),[n,i]=ze(0);return Ie(()=>{t==="typing"?(o(""),i(0)):o(e)},[t,e,r]),Ie(()=>{if(t==="typing"&&r&&e){let l,c,d=()=>{o(""),i(0);let u=0;l=setInterval(()=>{u<e.length?(o(e.slice(0,u+1)),i(u+1),u++):(clearInterval(l),c=setTimeout(()=>{d()},2e3))},100)};return d(),()=>{clearInterval(l),clearTimeout(c)}}else t==="typing"&&!r&&(o(""),i(0))},[t,r,e]),{textToShow:t==="typing"?a:e,currentIndex:n,getEffectStyle:()=>r?{}:{opacity:0},isTypingComplete:n>=e.length}};var Ne={keyframes:`
2
2
  @keyframes textFadeInOut {
3
3
  0%, 100% { opacity: 0.3; }
4
4
  50% { opacity: 1; }
@@ -154,7 +154,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
154
154
  animation: textSpinX 2s ease-in-out infinite;
155
155
  display: inline-block;
156
156
  }
157
- `},Ze={keyframes:`
157
+ `},Oe={keyframes:`
158
158
  @keyframes textSpinY {
159
159
  from { transform: rotate(0deg); }
160
160
  to { transform: rotate(360deg); }
@@ -169,7 +169,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
169
169
  justify-content: center;
170
170
  width: 100%;
171
171
  }
172
- `,customRender:!0},Oe={keyframes:`
172
+ `,customRender:!0},Ze={keyframes:`
173
173
  @keyframes textSpinCenter {
174
174
  0% { transform: perspective(800px) rotateY(0deg); }
175
175
  100% { transform: perspective(800px) rotateY(360deg); }
@@ -381,7 +381,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
381
381
  .vfx-text-fly-in-container {
382
382
  display: inline-flex;
383
383
  }
384
- `,customRender:!0};var se={fade:Ne,flowing:_e,"yellow-pulse":$e,"red-pulse":Ae,"blue-pulse":Xe,"green-pulse":Ke,"pink-pulse":Ye,"purple-pulse":Ge,blink:He,"spin-x":Ve,"spin-y":Ze,"spin-center":Oe,"swing-x":Ue,"swing-y":We,shake:je,bounce:qe,wave:Je,glitch:Qe,neon:et,zoom:tt,blur:rt,rainbow:ot,jitter:at,"fly-in":nt},st=()=>{let e=[];return e.push(`
384
+ `,customRender:!0};var ie={fade:Ne,flowing:_e,"yellow-pulse":$e,"red-pulse":Ae,"blue-pulse":Xe,"green-pulse":Ke,"pink-pulse":Ye,"purple-pulse":Ge,blink:He,"spin-x":Ve,"spin-y":Oe,"spin-center":Ze,"swing-x":Ue,"swing-y":We,shake:je,bounce:qe,wave:Je,glitch:Qe,neon:et,zoom:tt,blur:rt,rainbow:ot,jitter:at,"fly-in":nt},it=()=>{let e=[];return e.push(`
385
385
  .vfx-text-effect-container {
386
386
  display: flex;
387
387
  position: relative;
@@ -389,86 +389,90 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
389
389
  width: 100%;
390
390
  overflow: hidden;
391
391
  }
392
- `),Object.values(se).forEach(t=>{e.push(t.keyframes),e.push(t.className),t.additionalClasses&&e.push(t.additionalClasses)}),e.join(`
393
- `)},it=e=>!e||!se[e]?"":`vfx-text-${e}`,ft=e=>e?se[e]?.additionalStyle||{}:{};import{jsx as M,jsxs as lt}from"react/jsx-runtime";var Nr=()=>{let e="text-effect-styles";if(document.getElementById(e))return;let t=document.createElement("style");t.id=e,t.textContent=st(),document.head.appendChild(t)},_r=({title:e,effect:t,isActive:r,className:a="",style:o={}})=>{let{textToShow:n,getEffectStyle:s,isTypingComplete:p}=ne(e,t,r),f=y=>{let w=y.length*100/1e3;return Math.min(Math.max(w,2),10)},l="",c={};r&&t&&(l=` ${it(t)}`,c=ft(t));let m={...o,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",width:"100%",maxWidth:"100%",display:"flex"};if(a=`vfx-text-effect-container w-full h-full ${a}`.trim(),l&&(a+=l),t==="wave"&&r)return M("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...m,...o},children:M("span",{className:"vfx-text-wave-container",children:e.split("").map((y,v)=>M("span",{className:"vfx-text-wave-char",style:{animationDelay:`${v*.05}s`},children:y===" "?"\xA0":y},v))})});if(t==="fly-in"&&r)return M("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...m,...o,overflow:"visible"},children:M("span",{className:"vfx-text-fly-in-container",children:e.split("").map((y,v)=>M("span",{className:"vfx-text-fly-in-char",style:{animationDelay:`${v*.08}s`},children:y===" "?"\xA0":y},v))})});if(t==="spin-y"&&r)return M("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...m,...o,overflow:"visible"},children:M("div",{className:"vfx-text-spin-y-wrapper",children:M("span",{className:"vfx-text-spin-y",children:e})})});if(t==="spin-center"&&r)return M("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...m,...o,overflow:"visible"},children:M("div",{className:"vfx-text-spin-center-wrapper",children:M("span",{className:"vfx-text-spin-center",children:e})})});if(t==="flowing"&&r){let y=f(e);return lt("div",{className:a,style:{position:"relative",whiteSpace:"nowrap",height:"auto"},children:[M("div",{style:{visibility:"hidden",width:0,overflow:"hidden"},children:e}),M("div",{className:"vfx-text-flowing",style:{display:"inline-block",position:"absolute",animationDuration:`${y}s`,whiteSpace:"nowrap"},children:e})]})}return lt("div",{className:a,style:{...m,...s(),...c},children:[n,t==="typing"&&r&&!p&&M("span",{className:"animate-pulse",children:"_"})]})};import{useEffect as Yr}from"react";var N="2s";var h={BASE:0,MEDIUM:0,LARGE:0,INTENSE_SMALL:1,INTENSE_MEDIUM:1.5,INTENSE_LARGE:2};var dt={keyframes:`
392
+ `),Object.values(ie).forEach(t=>{e.push(t.keyframes),e.push(t.className),t.additionalClasses&&e.push(t.additionalClasses)}),e.join(`
393
+ `)},st=e=>!e||!ie[e]?"":`vfx-text-${e}`,ft=e=>e?ie[e]?.additionalStyle||{}:{};import{jsx as P,jsxs as lt}from"react/jsx-runtime";var Kr=()=>{let e="text-effect-styles";if(document.getElementById(e))return;let t=document.createElement("style");t.id=e,t.textContent=it(),document.head.appendChild(t)},Yr=({title:e,effect:t,isActive:r,className:a="",style:o={}})=>{let{textToShow:n,getEffectStyle:i,isTypingComplete:p}=ne(e,t,r),s=u=>{let h=u.length*100/1e3;return Math.min(Math.max(h,2),10)},l="",c={};r&&t&&(l=` ${st(t)}`,c=ft(t));let d={...o,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",width:"100%",maxWidth:"100%",display:"flex"};if(a=`vfx-text-effect-container w-full h-full ${a}`.trim(),l&&(a+=l),t==="wave"&&r)return P("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...d,...o},children:P("span",{className:"vfx-text-wave-container",children:e.split("").map((u,g)=>P("span",{className:"vfx-text-wave-char",style:{animationDelay:`${g*.05}s`},children:u===" "?"\xA0":u},g))})});if(t==="fly-in"&&r)return P("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...d,...o,overflow:"visible"},children:P("span",{className:"vfx-text-fly-in-container",children:e.split("").map((u,g)=>P("span",{className:"vfx-text-fly-in-char",style:{animationDelay:`${g*.08}s`},children:u===" "?"\xA0":u},g))})});if(t==="spin-y"&&r)return P("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...d,...o,overflow:"visible"},children:P("div",{className:"vfx-text-spin-y-wrapper",children:P("span",{className:"vfx-text-spin-y",children:e})})});if(t==="spin-center"&&r)return P("div",{className:`vfx-text-effect-container w-full h-full ${a}`.trim(),style:{...d,...o,overflow:"visible"},children:P("div",{className:"vfx-text-spin-center-wrapper",children:P("span",{className:"vfx-text-spin-center",children:e})})});if(t==="flowing"&&r){let u=s(e);return lt("div",{className:a,style:{position:"relative",whiteSpace:"nowrap",height:"auto"},children:[P("div",{style:{visibility:"hidden",width:0,overflow:"hidden"},children:e}),P("div",{className:"vfx-text-flowing",style:{display:"inline-block",position:"absolute",animationDuration:`${u}s`,whiteSpace:"nowrap"},children:e})]})}return lt("div",{className:a,style:{...d,...i(),...c},children:[n,t==="typing"&&r&&!p&&P("span",{className:"animate-pulse",children:"_"})]})};import{useEffect as dt,useState as Gr}from"react";import{jsx as xt,jsxs as jr}from"react/jsx-runtime";var pt=45,Hr=2e3,mt="vfx-typing-styles",Vr=`
394
+ :where(.vfx-typing-rest){color:transparent}
395
+ :where(.vfx-typing-caret){display:inline-block;width:2px;height:1.1em;margin:0 1px -0.18em;background:currentColor;animation:vfx-typing-blink .8s steps(1) infinite}
396
+ @keyframes vfx-typing-blink{50%{opacity:0}}
397
+ `,Or=()=>{if(typeof document>"u"||document.getElementById(mt))return;let e=document.createElement("style");e.id=mt,e.textContent=Vr,document.head.appendChild(e)},ct=(e,t,r)=>r?Math.min(t,r/Math.max(1,e)):t,Zr=(e,t={})=>{let r=Array.from(e).length;return r*ct(r,t.speed??pt,t.maxDuration)},Ur=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,Wr=({text:e,delay:t=0,speed:r=pt,maxDuration:a,loop:o=!1,caret:n="typing",reserveSpace:i=!0,as:p="span",className:s="",style:l,caretClassName:c="",respectReducedMotion:d=!0,ariaHidden:u=!1,onDone:g})=>{let C=Array.from(e),w=d&&Ur(),[h,E]=Gr(w?C.length:0);dt(()=>{Or()},[]),dt(()=>{if(w){E(C.length),g?.();return}E(0);let y=0,F=0,I=ct(C.length,r,a),R=typeof o=="number"?o:Hr,L=()=>{if(F+=1,E(F),F<C.length){y=window.setTimeout(L,I);return}g?.(),o!==!1&&(y=window.setTimeout(()=>{F=0,E(0),y=window.setTimeout(L,I)},R))};return y=window.setTimeout(L,t),()=>window.clearTimeout(y)},[e,t,r,a,o,w]);let z=h>=C.length,K=!w&&n!=="none"&&(n==="always"||(h>0?!z:n==="wait"));return jr(p,{className:`vfx-typing ${s}`.trim(),style:l,"aria-hidden":u||void 0,children:[C.slice(0,h).join(""),K&&xt("span",{className:`vfx-typing-caret ${c}`.trim()}),i&&xt("span",{className:"vfx-typing-rest",children:C.slice(h).join("")})]})};import{useEffect as to}from"react";var A="2s";var v={BASE:0,MEDIUM:0,LARGE:0,INTENSE_SMALL:1,INTENSE_MEDIUM:1.5,INTENSE_LARGE:2};var ut={keyframes:`
394
398
  @keyframes yellowBorderGlow {
395
399
  0%, 100% {
396
400
  box-shadow: none;
397
401
  }
398
402
  50% {
399
- box-shadow: 0 0 ${7*h.INTENSE_SMALL}px rgba(255, 193, 7, 1), 0 0 ${7*h.INTENSE_MEDIUM}px rgba(255, 193, 7, 0.8), 0 0 ${7*h.INTENSE_LARGE}px rgba(255, 193, 7, 0.6);
403
+ box-shadow: 0 0 ${7*v.INTENSE_SMALL}px rgba(255, 193, 7, 1), 0 0 ${7*v.INTENSE_MEDIUM}px rgba(255, 193, 7, 0.8), 0 0 ${7*v.INTENSE_LARGE}px rgba(255, 193, 7, 0.6);
400
404
  }
401
405
  }
402
406
  `,className:`
403
407
  .vfx-border-yellow-pulse {
404
- animation: yellowBorderGlow ${N} ease-in-out infinite !important;
408
+ animation: yellowBorderGlow ${A} ease-in-out infinite !important;
405
409
  }
406
- `},mt={keyframes:`
410
+ `},yt={keyframes:`
407
411
  @keyframes redBorderGlow {
408
412
  0%, 100% {
409
413
  box-shadow: none;
410
414
  }
411
415
  50% {
412
- box-shadow: 0 0 ${7*h.INTENSE_SMALL}px rgba(244, 67, 54, 1), 0 0 ${7*h.INTENSE_MEDIUM}px rgba(244, 67, 54, 0.8), 0 0 ${7*h.INTENSE_LARGE}px rgba(244, 67, 54, 0.6);
416
+ box-shadow: 0 0 ${7*v.INTENSE_SMALL}px rgba(244, 67, 54, 1), 0 0 ${7*v.INTENSE_MEDIUM}px rgba(244, 67, 54, 0.8), 0 0 ${7*v.INTENSE_LARGE}px rgba(244, 67, 54, 0.6);
413
417
  }
414
418
  }
415
419
  `,className:`
416
420
  .vfx-border-red-pulse {
417
- animation: redBorderGlow ${N} ease-in-out infinite !important;
421
+ animation: redBorderGlow ${A} ease-in-out infinite !important;
418
422
  }
419
- `},xt={keyframes:`
423
+ `},ht={keyframes:`
420
424
  @keyframes blueBorderGlow {
421
425
  0%, 100% {
422
426
  box-shadow: none;
423
427
  }
424
428
  50% {
425
- box-shadow: 0 0 ${7*h.INTENSE_SMALL}px rgba(33, 150, 243, 1), 0 0 ${7*h.INTENSE_MEDIUM}px rgba(33, 150, 243, 0.8), 0 0 ${7*h.INTENSE_LARGE}px rgba(33, 150, 243, 0.6);
429
+ box-shadow: 0 0 ${7*v.INTENSE_SMALL}px rgba(33, 150, 243, 1), 0 0 ${7*v.INTENSE_MEDIUM}px rgba(33, 150, 243, 0.8), 0 0 ${7*v.INTENSE_LARGE}px rgba(33, 150, 243, 0.6);
426
430
  }
427
431
  }
428
432
  `,className:`
429
433
  .vfx-border-blue-pulse {
430
- animation: blueBorderGlow ${N} ease-in-out infinite !important;
434
+ animation: blueBorderGlow ${A} ease-in-out infinite !important;
431
435
  }
432
- `},pt={keyframes:`
436
+ `},Et={keyframes:`
433
437
  @keyframes greenBorderGlow {
434
438
  0%, 100% {
435
439
  box-shadow: none;
436
440
  }
437
441
  50% {
438
- box-shadow: 0 0 ${7*h.INTENSE_SMALL}px rgba(76, 175, 80, 1), 0 0 ${7*h.INTENSE_MEDIUM}px rgba(76, 175, 80, 0.8), 0 0 ${7*h.INTENSE_LARGE}px rgba(76, 175, 80, 0.6);
442
+ box-shadow: 0 0 ${7*v.INTENSE_SMALL}px rgba(76, 175, 80, 1), 0 0 ${7*v.INTENSE_MEDIUM}px rgba(76, 175, 80, 0.8), 0 0 ${7*v.INTENSE_LARGE}px rgba(76, 175, 80, 0.6);
439
443
  }
440
444
  }
441
445
  `,className:`
442
446
  .vfx-border-green-pulse {
443
- animation: greenBorderGlow ${N} ease-in-out infinite !important;
447
+ animation: greenBorderGlow ${A} ease-in-out infinite !important;
444
448
  }
445
- `},ct={keyframes:`
449
+ `},gt={keyframes:`
446
450
  @keyframes pinkBorderGlow {
447
451
  0%, 100% {
448
452
  box-shadow: none;
449
453
  }
450
454
  50% {
451
- box-shadow: 0 0 ${7*h.INTENSE_SMALL}px rgba(233, 30, 99, 1), 0 0 ${7*h.INTENSE_MEDIUM}px rgba(233, 30, 99, 0.8), 0 0 ${7*h.INTENSE_LARGE}px rgba(233, 30, 99, 0.6);
455
+ box-shadow: 0 0 ${7*v.INTENSE_SMALL}px rgba(233, 30, 99, 1), 0 0 ${7*v.INTENSE_MEDIUM}px rgba(233, 30, 99, 0.8), 0 0 ${7*v.INTENSE_LARGE}px rgba(233, 30, 99, 0.6);
452
456
  }
453
457
  }
454
458
  `,className:`
455
459
  .vfx-border-pink-pulse {
456
- animation: pinkBorderGlow ${N} ease-in-out infinite !important;
460
+ animation: pinkBorderGlow ${A} ease-in-out infinite !important;
457
461
  }
458
- `},yt={keyframes:`
462
+ `},bt={keyframes:`
459
463
  @keyframes purpleBorderGlow {
460
464
  0%, 100% {
461
465
  box-shadow: none;
462
466
  }
463
467
  50% {
464
- box-shadow: 0 0 ${7*h.INTENSE_SMALL}px rgba(156, 39, 176, 1), 0 0 ${7*h.INTENSE_MEDIUM}px rgba(156, 39, 176, 0.8), 0 0 ${7*h.INTENSE_LARGE}px rgba(156, 39, 176, 0.6);
468
+ box-shadow: 0 0 ${7*v.INTENSE_SMALL}px rgba(156, 39, 176, 1), 0 0 ${7*v.INTENSE_MEDIUM}px rgba(156, 39, 176, 0.8), 0 0 ${7*v.INTENSE_LARGE}px rgba(156, 39, 176, 0.6);
465
469
  }
466
470
  }
467
471
  `,className:`
468
472
  .vfx-border-purple-pulse {
469
- animation: purpleBorderGlow ${N} ease-in-out infinite !important;
473
+ animation: purpleBorderGlow ${A} ease-in-out infinite !important;
470
474
  }
471
- `};var ut={keyframes:`
475
+ `};var vt={keyframes:`
472
476
  @keyframes yellowSparkle {
473
477
  0%, 100% {
474
478
  box-shadow:
@@ -500,7 +504,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
500
504
  border: 2px solid rgba(255, 215, 0, 0.6);
501
505
  animation: yellowSparkle 0.8s ease-in-out infinite !important;
502
506
  }
503
- `},ht={keyframes:`
507
+ `},wt={keyframes:`
504
508
  @keyframes redSparkle {
505
509
  0%, 100% {
506
510
  box-shadow:
@@ -532,7 +536,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
532
536
  border: 2px solid rgba(255, 0, 0, 0.6);
533
537
  animation: redSparkle 0.8s ease-in-out infinite !important;
534
538
  }
535
- `},Et={keyframes:`
539
+ `},kt={keyframes:`
536
540
  @keyframes blueSparkle {
537
541
  0%, 100% {
538
542
  box-shadow:
@@ -564,7 +568,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
564
568
  border: 2px solid rgba(0, 100, 255, 0.6);
565
569
  animation: blueSparkle 0.8s ease-in-out infinite !important;
566
570
  }
567
- `},gt={keyframes:`
571
+ `},Mt={keyframes:`
568
572
  @keyframes greenSparkle {
569
573
  0%, 100% {
570
574
  box-shadow:
@@ -596,7 +600,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
596
600
  border: 2px solid rgba(0, 200, 0, 0.6);
597
601
  animation: greenSparkle 0.8s ease-in-out infinite !important;
598
602
  }
599
- `},bt={keyframes:`
603
+ `},Ct={keyframes:`
600
604
  @keyframes pinkSparkle {
601
605
  0%, 100% {
602
606
  box-shadow:
@@ -628,7 +632,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
628
632
  border: 2px solid rgba(255, 20, 147, 0.6);
629
633
  animation: pinkSparkle 0.8s ease-in-out infinite !important;
630
634
  }
631
- `},vt={keyframes:`
635
+ `},Ft={keyframes:`
632
636
  @keyframes purpleSparkle {
633
637
  0%, 100% {
634
638
  box-shadow:
@@ -660,7 +664,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
660
664
  border: 2px solid rgba(138, 43, 226, 0.6);
661
665
  animation: purpleSparkle 0.8s ease-in-out infinite !important;
662
666
  }
663
- `},wt={keyframes:`
667
+ `},Pt={keyframes:`
664
668
  @keyframes borderRainbowSparkle {
665
669
  0%, 100% {
666
670
  box-shadow:
@@ -692,7 +696,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
692
696
  border: 2px solid rgba(255, 255, 255, 0.6);
693
697
  animation: borderRainbowSparkle 1s ease-in-out infinite !important;
694
698
  }
695
- `};var $r=`
699
+ `};var qr=`
696
700
  @keyframes dashFlowHorizontal {
697
701
  0% { background-position: 0 0, 0 100%; }
698
702
  100% { background-position: 100% 0, 100% 100%; }
@@ -701,7 +705,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
701
705
  0% { background-position: 0 0, 100% 0; }
702
706
  100% { background-position: 0 100%, 100% 100%; }
703
707
  }
704
- `,X=(e,t)=>`
708
+ `,G=(e,t)=>`
705
709
  .vfx-border-${e}-dash-flow {
706
710
  position: relative;
707
711
  border: none !important;
@@ -730,12 +734,12 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
730
734
  animation: dashFlowVertical 2s linear infinite;
731
735
  pointer-events: none;
732
736
  }
733
- `,kt={keyframes:$r,className:X("yellow","#ffc107")},Mt={keyframes:"",className:X("red","#f44336")},Ft={keyframes:"",className:X("blue","#2196f3")},Ct={keyframes:"",className:X("green","#4caf50")},Pt={keyframes:"",className:X("pink","#e91e63")},St={keyframes:"",className:X("purple","#9c27b0")};var Ar=`
737
+ `,Tt={keyframes:qr,className:G("yellow","#ffc107")},St={keyframes:"",className:G("red","#f44336")},Dt={keyframes:"",className:G("blue","#2196f3")},Bt={keyframes:"",className:G("green","#4caf50")},Rt={keyframes:"",className:G("pink","#e91e63")},Lt={keyframes:"",className:G("purple","#9c27b0")};var Jr=`
734
738
  @keyframes dashRotateAnim {
735
739
  from { transform: translate(-50%, -50%) rotate(0deg); }
736
740
  to { transform: translate(-50%, -50%) rotate(360deg); }
737
741
  }
738
- `,Xr=`
742
+ `,Qr=`
739
743
  .vfx-border-yellow-dash-rotate, .vfx-border-red-dash-rotate, .vfx-border-blue-dash-rotate,
740
744
  .vfx-border-green-dash-rotate, .vfx-border-pink-dash-rotate, .vfx-border-purple-dash-rotate,
741
745
  .vfx-border-rainbow-dash-rotate {
@@ -774,7 +778,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
774
778
  position: relative;
775
779
  z-index: 2;
776
780
  }
777
- `,K=e=>`
781
+ `,H=e=>`
778
782
  background: conic-gradient(
779
783
  from 0deg,
780
784
  ${e} 0deg 30deg, transparent 30deg 60deg,
@@ -784,32 +788,32 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
784
788
  ${e} 240deg 270deg, transparent 270deg 300deg,
785
789
  ${e} 300deg 330deg, transparent 330deg 360deg
786
790
  );
787
- `,Tt={keyframes:Ar,className:`
788
- ${Xr}
791
+ `,zt={keyframes:Jr,className:`
792
+ ${Qr}
789
793
  .vfx-border-yellow-dash-rotate::before {
790
- ${K("#ffc107")}
794
+ ${H("#ffc107")}
791
795
  }
792
- `},Dt={keyframes:"",className:`
796
+ `},It={keyframes:"",className:`
793
797
  .vfx-border-red-dash-rotate::before {
794
- ${K("#f44336")}
798
+ ${H("#f44336")}
795
799
  }
796
- `},Bt={keyframes:"",className:`
800
+ `},Nt={keyframes:"",className:`
797
801
  .vfx-border-blue-dash-rotate::before {
798
- ${K("#2196f3")}
802
+ ${H("#2196f3")}
799
803
  }
800
- `},Rt={keyframes:"",className:`
804
+ `},_t={keyframes:"",className:`
801
805
  .vfx-border-green-dash-rotate::before {
802
- ${K("#4caf50")}
806
+ ${H("#4caf50")}
803
807
  }
804
- `},Lt={keyframes:"",className:`
808
+ `},$t={keyframes:"",className:`
805
809
  .vfx-border-pink-dash-rotate::before {
806
- ${K("#e91e63")}
810
+ ${H("#e91e63")}
807
811
  }
808
- `},zt={keyframes:"",className:`
812
+ `},At={keyframes:"",className:`
809
813
  .vfx-border-purple-dash-rotate::before {
810
- ${K("#9c27b0")}
814
+ ${H("#9c27b0")}
811
815
  }
812
- `},It={keyframes:"",className:`
816
+ `},Xt={keyframes:"",className:`
813
817
  .vfx-border-rainbow-dash-rotate::before {
814
818
  background: conic-gradient(
815
819
  from 0deg,
@@ -821,7 +825,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
821
825
  #ff00ff 300deg 330deg, transparent 330deg 360deg
822
826
  );
823
827
  }
824
- `};var Nt={keyframes:`
828
+ `};var Kt={keyframes:`
825
829
  @keyframes borderRainbow {
826
830
  0% {
827
831
  border-color: #ff0000;
@@ -857,7 +861,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
857
861
  border: 2px solid #ff0000;
858
862
  animation: borderRainbow 3s linear infinite !important;
859
863
  }
860
- `},_t={keyframes:`
864
+ `},Yt={keyframes:`
861
865
  @keyframes borderBreathe {
862
866
  0%, 100% {
863
867
  transform: scale(1);
@@ -873,7 +877,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
873
877
  border: 2px solid rgba(255, 255, 255, 0.5);
874
878
  animation: borderBreathe 3s ease-in-out infinite !important;
875
879
  }
876
- `},$t={keyframes:`
880
+ `},Gt={keyframes:`
877
881
  @keyframes borderElectric {
878
882
  0%, 100% {
879
883
  box-shadow:
@@ -905,8 +909,8 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
905
909
  border: 2px solid #ffff00;
906
910
  animation: borderElectric 0.15s ease-in-out infinite !important;
907
911
  }
908
- `};var Kr={"yellow-pulse":dt,"red-pulse":mt,"blue-pulse":xt,"green-pulse":pt,"pink-pulse":ct,"purple-pulse":yt,"yellow-sparkle":ut,"red-sparkle":ht,"blue-sparkle":Et,"green-sparkle":gt,"pink-sparkle":bt,"purple-sparkle":vt,"rainbow-sparkle":wt,"yellow-dash-flow":kt,"red-dash-flow":Mt,"blue-dash-flow":Ft,"green-dash-flow":Ct,"pink-dash-flow":Pt,"purple-dash-flow":St,"yellow-dash-rotate":Tt,"red-dash-rotate":Dt,"blue-dash-rotate":Bt,"green-dash-rotate":Rt,"pink-dash-rotate":Lt,"purple-dash-rotate":zt,"rainbow-dash-rotate":It,rainbow:Nt,breathe:_t,electric:$t},At=()=>{let e=[];return Object.values(Kr).forEach(t=>{t.keyframes&&e.push(t.keyframes),e.push(t.className)}),e.join(`
909
- `)},Xt=e=>e?`vfx-border-${e}`:"";import{jsx as Hr}from"react/jsx-runtime";var Kt=()=>{let e="border-effect-styles";if(document.getElementById(e))return;let t=document.createElement("style");t.id=e,t.textContent=At(),document.head.appendChild(t)},Gr=({borderEffect:e,children:t,className:r="",style:a,...o})=>{Yr(()=>{Kt()},[]);let n=Xt(e);return Hr("div",{...o,className:`vfx-div ${r} ${n}`.trim(),style:{...a,...e&&{boxShadow:"none"}},children:t})};import{useRef as ee,useEffect as Vr,useCallback as Be}from"react";var ie={defaultColors:["#FFD700","#FFA500","#FFFF00","#FFFFFF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r,vy:(Math.random()-.5)*r,size:Math.random()*a+1,color:t,opacity:Math.random()*o,life:0,maxLife:60+Math.random()*60}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.translate(t.x,t.y),e.beginPath();for(let r=0;r<4;r++)e.rotate(Math.PI/2),e.lineTo(0,t.size),e.lineTo(t.size/3,t.size/3);e.closePath(),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife)};var fe={defaultColors:["#FF6B6B","#4ECDC4","#45B7D1","#96CEB4","#FFEAA7","#DDA0DD"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:-10,vx:(Math.random()-.5)*r*2,vy:Math.random()*r*2+1,size:Math.random()*a+3,color:t,opacity:o,life:0,maxLife:200,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*10}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color,e.fillRect(-t.size/2,-t.size/4,t.size,t.size/2),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vy+=.05,e.vx*=.99,e.y<t.height+20)};var le={defaultColors:["#FFFFFF","#E8E8E8","#F0F8FF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-10,vx:(Math.random()-.5)*r*.5,vy:Math.random()*r+.5,size:Math.random()*a+1,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:300}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vx=Math.sin(e.life*.02)*.5,e.y<t.height+10)};var de={defaultColors:["#FFFF00","#ADFF2F","#7FFF00","#00FF7F"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r*.5,vy:(Math.random()-.5)*r*.5,size:Math.random()*a+2,color:t,opacity:0,life:0,maxLife:100+Math.random()*100}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=e.createRadialGradient(t.x,t.y,0,t.x,t.y,t.size*2);r.addColorStop(0,t.color),r.addColorStop(1,"transparent"),e.fillStyle=r,e.beginPath(),e.arc(t.x,t.y,t.size*2,0,Math.PI*2),e.fill(),e.restore()},update:(e,t,r)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI)*.8,Math.random()<.02&&(e.vx=(Math.random()-.5)*r*.5,e.vy=(Math.random()-.5)*r*.5),e.x<0&&(e.x=t.width),e.x>t.width&&(e.x=0),e.y<0&&(e.y=t.height),e.y>t.height&&(e.y=0),e.life<e.maxLife)};var _={defaultColors:["#87CEEB","#ADD8E6","#FF69B4","#98FB98","#DDA0DD"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:e.height+10,vx:(Math.random()-.5)*r*.3,vy:-(Math.random()*r+.5),size:Math.random()*a*2+3,color:t,opacity:Math.random()*.4+.2,life:0,maxLife:200}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.strokeStyle=t.color,e.lineWidth=1,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.stroke(),e.fillStyle="rgba(255,255,255,0.3)",e.beginPath(),e.arc(t.x-t.size/3,t.y-t.size/3,t.size/4,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vx=Math.sin(e.life*.03)*.3,e.y>-e.size*2)};var J={defaultColors:["#FFFFFF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:0,vy:0,size:Math.random()*a+1,color:t,opacity:Math.random()*o,life:Math.random()*60,maxLife:60+Math.random()*60}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.translate(t.x,t.y),e.beginPath();for(let r=0;r<5;r++)e.lineTo(Math.cos((18+r*72)*Math.PI/180)*t.size,-Math.sin((18+r*72)*Math.PI/180)*t.size),e.lineTo(Math.cos((54+r*72)*Math.PI/180)*t.size*.5,-Math.sin((54+r*72)*Math.PI/180)*t.size*.5);e.closePath(),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife)};var me={defaultColors:["#87CEEB","#ADD8E6","#6495ED"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-10,vx:-r*.1,vy:r*3+Math.random()*2,size:Math.random()*.5+.5,color:t,opacity:Math.random()*.4+.2,life:0,maxLife:200}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.strokeStyle=t.color,e.lineWidth=t.size,e.lineCap="round",e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(t.x+1,t.y+20),e.stroke(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.y<t.height+20)};var xe={defaultColors:["#8B4513","#D2691E","#CD853F","#DEB887","#F4A460","#FF4500","#FF6347","#DC143C","#FFD700","#FFA500"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-20,vx:(Math.random()-.5)*r*.3,vy:Math.random()*r*.3+.3,size:Math.random()*a+5,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:300,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*3,leafType:Math.floor(Math.random()*3)}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color;let r=t.size,a=t.leafType||0;if(a===0)e.beginPath(),e.ellipse(0,0,r,r/2,0,0,Math.PI*2),e.fill(),e.strokeStyle="rgba(0,0,0,0.2)",e.lineWidth=.5,e.beginPath(),e.moveTo(-r,0),e.lineTo(r,0),e.stroke();else if(a===1){e.beginPath();let o=r*.8;e.moveTo(0,-o*1.2),e.lineTo(-o*.3,-o*.5),e.lineTo(-o*1,-o*.6),e.lineTo(-o*.5,-o*.1),e.lineTo(-o*1.1,o*.3),e.lineTo(-o*.4,o*.3),e.lineTo(0,o*.8),e.lineTo(o*.4,o*.3),e.lineTo(o*1.1,o*.3),e.lineTo(o*.5,-o*.1),e.lineTo(o*1,-o*.6),e.lineTo(o*.3,-o*.5),e.closePath(),e.fill()}else{e.beginPath();let o=r;e.moveTo(0,o),e.quadraticCurveTo(-o*1.2,o*.3,-o*.8,-o*.5),e.quadraticCurveTo(0,-o*.2,o*.8,-o*.5),e.quadraticCurveTo(o*1.2,o*.3,0,o),e.fill()}e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.01)*.3,e.y<t.height+30)};var pe={defaultColors:["#FFB7C5","#FFC0CB","#FFD1DC","#FFDFEB"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-10,vx:(Math.random()-.5)*r*.5,vy:Math.random()*r*.3+.2,size:Math.random()*a+4,color:t,opacity:Math.random()*.4+.6,life:0,maxLife:400,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*2}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color,e.beginPath();let r=t.size;e.moveTo(0,-r),e.bezierCurveTo(r*.8,-r,r,-r*.3,r*.5,r*.3),e.quadraticCurveTo(0,r*.6,0,r*.8),e.quadraticCurveTo(0,r*.6,-r*.5,r*.3),e.bezierCurveTo(-r,-r*.3,-r*.8,-r,0,-r),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.008)*.2,e.y<t.height+20)};var ce={defaultColors:["#808080","#A9A9A9","#C0C0C0","#D3D3D3"],create:(e,t,r,a,o,n)=>({x:e.width/2+(Math.random()-.5)*50,y:e.height,vx:(Math.random()-.5)*r*.5,vy:-Math.random()*r-.5,size:Math.random()*a*3+10,color:t,opacity:Math.random()*.3+.1,life:0,maxLife:150}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=e.createRadialGradient(t.x,t.y,0,t.x,t.y,t.size);r.addColorStop(0,t.color),r.addColorStop(1,"transparent"),e.fillStyle=r,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.size+=.5,e.opacity*=.97,e.vx+=(Math.random()-.5)*.3,e.vx*=1.02,e.opacity>.01)};var ye={defaultColors:["#DEB887","#D2B48C","#C4A484","#BC8F8F"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r*.2,vy:(Math.random()-.5)*r*.2,size:Math.random()*2+1,color:t,opacity:Math.random()*.3+.1,life:0,maxLife:200+Math.random()*100}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t,r)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI)*.3,Math.random()<.01&&(e.vx=(Math.random()-.5)*r*.2,e.vy=(Math.random()-.5)*r*.2),e.life<e.maxLife)};var ue={defaultColors:["#FF0000","#FF7F00","#FFFF00","#00FF00","#0000FF","#8B00FF","#FFFFFF"],create:(e,t,r,a,o,n,s)=>{if(s?.fireworksBurst&&s.fireworksBurst.frame===0){let m=[{x:e.width*.15,y:e.height*.25},{x:e.width*.5,y:e.height*.2},{x:e.width*.85,y:e.height*.3},{x:e.width*.25,y:e.height*.45},{x:e.width*.75,y:e.height*.4},{x:e.width*.4,y:e.height*.35},{x:e.width*.6,y:e.height*.5}],y=m[Math.floor(Math.random()*m.length)];s.fireworksBurst.x=y.x+(Math.random()-.5)*30,s.fireworksBurst.y=y.y+(Math.random()-.5)*30,s.fireworksBurst.frame=1}let p=s?.fireworksBurst?.x??e.width/2,f=s?.fireworksBurst?.y??e.height/2,l=Math.random()*Math.PI*2,c=Math.random()*r*5+3;return{x:p,y:f,vx:Math.cos(l)*c,vy:Math.sin(l)*c,size:Math.random()*3+2,color:t,opacity:1,life:0,maxLife:45+Math.random()*15,burstCenterX:p,burstCenterY:f}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=t.x-t.vx*.5,a=t.y-t.vy*.5,o=e.createLinearGradient(r,a,t.x,t.y);o.addColorStop(0,"transparent"),o.addColorStop(1,t.color),e.strokeStyle=o,e.lineWidth=t.size,e.lineCap="round",e.beginPath(),e.moveTo(r,a),e.lineTo(t.x,t.y),e.stroke(),e.fillStyle="#FFFFFF",e.beginPath(),e.arc(t.x,t.y,t.size/2,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vy+=.08,e.vx*=.98,e.vy*=.98,e.opacity=1-e.life/e.maxLife,e.size*=.99,e.life<e.maxLife&&e.opacity>.05)};var he=(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color,e.beginPath();let r=t.size/2;e.moveTo(0,r),e.bezierCurveTo(-r,-r/2,-r*2,r/2,0,r*2),e.bezierCurveTo(r*2,r/2,r,-r/2,0,r),e.fill(),e.restore()},Q={defaultColors:["#FF1493","#FF69B4","#FF6B6B","#E91E63"],defaultCount:15,create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:e.height+10,vx:(Math.random()-.5)*r,vy:-Math.random()*r*2-1,size:Math.random()*a+5,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:200,rotation:0,rotationSpeed:(Math.random()-.5)*2}),draw:he,update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.05)*.5,e.opacity=Math.max(0,1-e.life/e.maxLife),e.y>-e.size)},Ee={defaultColors:["#FF1493","#FF69B4","#FF6B6B","#E91E63"],defaultCount:15,create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-20,vx:(Math.random()-.5)*r,vy:Math.random()*r*2+1,size:Math.random()*a+5,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:200,rotation:0,rotationSpeed:(Math.random()-.5)*2}),draw:he,update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.05)*.5,e.opacity=Math.max(0,1-e.life/e.maxLife),e.y<t.height+e.size)},ge={defaultColors:["#FF1493","#FF69B4","#FF6B6B","#E91E63"],defaultCount:15,create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:0,vy:0,size:0,color:t,opacity:0,life:0,maxLife:60+Math.random()*40,rotation:(Math.random()-.5)*30,rotationSpeed:0,leafType:a*(.7+Math.random()*2.3)}),draw:he,update:(e,t)=>{e.life++;let r=e.life/e.maxLife,a=e.leafType||10;if(r<.3){let o=r/.3;e.opacity=o,e.size=a*o}else if(r<.7)e.opacity=1,e.size=a;else{let o=(r-.7)/.3;e.opacity=1-o,e.size=a*(1+o*.3)}return e.life<e.maxLife}},be=Q;var ve={defaultColors:["#FFD700","#FFA500","#DAA520","#B8860B"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:-20,vx:(Math.random()-.5)*r,vy:Math.random()*r*3+2,size:Math.random()*a+8,color:t,opacity:1,life:0,maxLife:200,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*15}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y);let r=Math.cos((t.rotation||0)*Math.PI/180);e.scale(r,1),e.fillStyle=t.color,e.beginPath(),e.arc(0,0,t.size/2,0,Math.PI*2),e.fill(),e.strokeStyle="#B8860B",e.lineWidth=2,e.stroke(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vy+=.1,e.y<t.height+30)};var we={defaultColors:["#FF6B6B","#4ECDC4","#45B7D1","#FFEAA7","#DDA0DD","#98D8C8"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:e.height+20,vx:(Math.random()-.5)*r*.5,vy:-Math.random()*r-.8,size:Math.random()*a*2+10,color:t,opacity:.9,life:0,maxLife:400}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.ellipse(t.x,t.y,t.size/2,t.size/1.5,0,0,Math.PI*2),e.fill(),e.strokeStyle="#666",e.lineWidth=1,e.beginPath(),e.moveTo(t.x,t.y+t.size/1.5),e.quadraticCurveTo(t.x+5,t.y+t.size,t.x,t.y+t.size*1.5),e.stroke(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vx=Math.sin(e.life*.02)*.3,e.y>-e.size*2)};var ke={defaultColors:["#8A2BE2","#9400D3","#BA55D3","#DA70D6","#EE82EE"],create:(e,t,r,a,o,n)=>{let s=Math.random()*Math.PI*2,p=Math.random()*50;return{x:e.width/2+Math.cos(s)*p,y:e.height/2+Math.sin(s)*p,vx:Math.cos(s)*r*2,vy:Math.sin(s)*r*2,size:Math.random()*a+2,color:t,opacity:1,life:0,maxLife:60+Math.random()*40,rotation:Math.random()*Math.PI*2,rotationSpeed:(Math.random()-.5)*.15}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate(t.rotation||0),e.fillStyle="#FFFFFF",e.beginPath(),e.arc(0,0,t.size*.3,0,Math.PI*2),e.fill(),e.fillStyle=t.color;let r=t.size*1.5,a=t.size*.15;e.beginPath(),e.moveTo(0,-r),e.lineTo(a,-a),e.lineTo(r,0),e.lineTo(a,a),e.lineTo(0,r),e.lineTo(-a,a),e.lineTo(-r,0),e.lineTo(-a,-a),e.closePath(),e.fill(),e.rotate(Math.PI/4);let o=t.size*.8,n=t.size*.1;e.beginPath(),e.moveTo(0,-o),e.lineTo(n,-n),e.lineTo(o,0),e.lineTo(n,n),e.lineTo(0,o),e.lineTo(-n,n),e.lineTo(-o,0),e.lineTo(-n,-n),e.closePath(),e.fill(),e.rotate(-Math.PI/4),e.fillStyle=t.color;for(let s=0;s<3;s++){let p=((t.rotation||0)*2+s*2.1)%(Math.PI*2),f=t.size*(1.5+Math.sin(t.life*3+s)*.5),l=t.size*.15;e.beginPath(),e.arc(Math.cos(p)*f,Math.sin(p)*f,l,0,Math.PI*2),e.fill()}e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation=(e.rotation||0)+(e.rotationSpeed||.05),e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife)};var Me={defaultColors:["#00CED1","#00BFFF","#1E90FF","#4169E1","#6A5ACD"],create:(e,t,r,a,o,n)=>{let s=Math.random()*Math.PI*2,p=30+Math.random()*30;return{x:e.width/2+Math.cos(s)*p,y:e.height/2+Math.sin(s)*p,vx:0,vy:0,size:Math.random()*a+2,color:t,opacity:1,life:0,maxLife:100,rotation:s*(180/Math.PI),rotationSpeed:3}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>{e.life++;let r=(e.rotation||0)*Math.PI/180+e.life*.05,a=30+Math.sin(e.life*.1)*10;return e.x=t.width/2+Math.cos(r)*a,e.y=t.height/2+Math.sin(r)*a,e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife}};var Fe={defaultColors:["#FF2200","#FF4400","#FF6600","#FF3300","#CC1100","#FFAA00"],create:(e,t,r,a,o,n,s)=>{s?.explosionBurst&&s.explosionBurst.frame===0&&(s.explosionBurst.x=e.width/2+(Math.random()-.5)*80,s.explosionBurst.y=e.height-10,s.explosionBurst.frame=1);let p=s?.explosionBurst?.x??e.width/2,f=s?.explosionBurst?.y??e.height-10,l=-Math.PI*.85+Math.random()*Math.PI*.7,c=Math.random()*r*8+4;return{x:p,y:f,vx:Math.cos(l)*c,vy:Math.sin(l)*c-3,size:Math.random()*a*1.5+4,color:t,opacity:1,life:0,maxLife:35+Math.random()*15,rotation:Math.random()*Math.PI*2,rotationSpeed:(Math.random()-.5)*.3}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate(t.rotation||0);let r=5+Math.floor(Math.random()*3),a=t.size,o=t.size*.3,n=e.createRadialGradient(0,0,0,0,0,a);n.addColorStop(0,"#FFFF88"),n.addColorStop(.2,"#FFAA00"),n.addColorStop(.5,t.color),n.addColorStop(1,"#330000"),e.fillStyle=n,e.beginPath();for(let s=0;s<r*2;s++){let p=s*Math.PI/r,f=.7+Math.sin(t.life*.5+s)*.3,l=s%2===0?a*f:o*f,c=Math.cos(p)*l,m=Math.sin(p)*l;s===0?e.moveTo(c,m):e.lineTo(c,m)}e.closePath(),e.fill(),e.fillStyle="#FFFFFF",e.beginPath(),e.arc(0,0,t.size*.15,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation=(e.rotation||0)+(e.rotationSpeed||.1),e.vx*=.94,e.vy*=.94,e.vy+=.15,e.opacity=1-e.life/e.maxLife,e.size*=.97,e.life<e.maxLife)};var Ce={defaultColors:["#00FF00","#32CD32","#90EE90"],create:(e,t,r,a,o,n)=>{let s=10+Math.floor(Math.random()*15),p="";for(let f=0;f<s;f++)p+=Math.random()>.5?"1":"0";return{x:Math.floor(Math.random()*(e.width/11))*11,y:-s*11,vx:0,vy:Math.random()*r*3+2,size:10,color:t,opacity:1,life:0,maxLife:500,codeString:p}},draw:(e,t)=>{e.save(),e.font=`${t.size}px monospace`;let r=t.codeString||"01010101";for(let a=0;a<r.length;a++){let o=Math.max(0,t.opacity*(1-a*.06));a===0?e.fillStyle=`rgba(255, 255, 255, ${o})`:e.fillStyle=`rgba(0, 255, 0, ${o})`,e.fillText(r[a],t.x,t.y+a*11)}e.restore()},update:(e,t)=>{e.life++,e.x+=e.vx,e.y+=e.vy;let a=(e.codeString||"").length*11;return e.y>t.height+a?!1:(e.opacity=Math.max(0,1-e.life/e.maxLife*.5),e.opacity>0)}};var Pe={defaultColors:["#FFFFFF","#F5F5F5","#E8E8E8"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r*.2,vy:(Math.random()-.5)*r*.1,size:Math.random()*40+20,color:t,opacity:Math.random()*.08+.02,life:0,maxLife:300+Math.random()*200}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=e.createRadialGradient(t.x,t.y,0,t.x,t.y,t.size);r.addColorStop(0,t.color),r.addColorStop(1,"transparent"),e.fillStyle=r,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.x<-e.size&&(e.x=t.width+e.size),e.x>t.width+e.size&&(e.x=-e.size),e.opacity=Math.sin(e.life/e.maxLife*Math.PI)*.08,e.life<e.maxLife)};var Se={defaultColors:["#FFFFFF","#F0FFFF","#87CEEB","#00BFFF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:0,vx:0,vy:0,size:Math.random()*3+1,color:t,opacity:1,life:0,maxLife:5+Math.random()*10}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.strokeStyle=t.color,e.lineWidth=t.size,e.shadowColor=t.color,e.shadowBlur=10,e.beginPath();let r=t.x,a=t.y;e.moveTo(r,a);let o=8,n=150/o;for(let s=0;s<o;s++)r+=(Math.random()-.5)*30,a+=n,e.lineTo(r,a);e.stroke(),e.shadowBlur=0,e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.life<e.maxLife)};var Te={defaultColors:["#FFFF00","#FFD700","#FFA500"],create:(e,t,r,a,o,n)=>{let s=e.width*.3+Math.random()*e.width*.4,p=e.height*.85,f=Math.random()>.5?5:4,l=[],c=s;l.push(`${s},0`);let m=Math.random()>.5?1:-1;for(let P=0;P<f;P++){let w=(P+1)/(f+1),k=p*(w*.85+Math.random()*.08),$=m*(20+Math.random()*35);c+=$,l.push(`${c},${k}`),m*=-1}l.push(`${c},${p}`);let y=l.join("|"),v=15+Math.random()*8;return{x:s,y:0,vx:0,vy:0,size:Math.random()*1+1.5,color:t,opacity:1,life:0,maxLife:v+60,codeString:y,rotation:v}},draw:(e,t)=>{e.save();let r=t.life<2?.5*t.opacity:.15*t.opacity;e.globalAlpha=r,e.fillStyle="#FFFFCC",e.fillRect(0,0,e.canvas.width,e.canvas.height);let o=(t.codeString||"").split("|").map(f=>{let[l,c]=f.split(",");return{x:parseFloat(l),y:parseFloat(c)}});if(o.length<2){e.restore();return}e.globalAlpha=t.opacity,e.lineJoin="miter",e.miterLimit=15,e.lineCap="round";let n=o[o.length-1],s=(f,l,c)=>{e.strokeStyle=f,e.lineWidth=l,e.shadowColor=f==="#FFFF88"?"#FFFFFF":"#FFD700",e.shadowBlur=c,e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let m=1;m<o.length;m++)e.lineTo(o[m].x,o[m].y);e.stroke()},p=(f,l,c)=>{e.fillStyle=f,e.shadowColor=f==="#FFFF88"?"#FFFFFF":"#FFD700",e.shadowBlur=c;let m=8,y=l*.5;e.beginPath(),e.moveTo(n.x-y/2,n.y),e.lineTo(n.x+y/2,n.y),e.lineTo(n.x,n.y+m),e.closePath(),e.fill()};s("#FFA500",t.size+3,25),p("#FFA500",t.size+3,25),s("#FFD700",t.size+1,12),p("#FFD700",t.size+1,12),s("#FFFF88",Math.max(1,t.size-1),5),p("#FFFF88",Math.max(1,t.size-1),5),e.restore()},update:(e,t)=>{e.life++;let r=e.rotation||20;return e.life<3?e.opacity=1:e.life<r?e.opacity=Math.max(0,1-(e.life-3)/(r-3)):e.opacity=0,e.life<e.maxLife}};var De={sparkle:ie,confetti:fe,snow:le,firefly:de,"bubbles-color":_,"bubbles-yellow":_,"bubbles-pink":_,"bubbles-blue":_,"bubbles-green":_,stars:J,"stars-color":J,rain:me,leaves:xe,sakura:pe,smoke:ce,dust:ye,fireworks:ue,hearts:be,"hearts-up":Q,"hearts-down":Ee,"hearts-pop":ge,coins:ve,balloons:we,magic:ke,portal:Me,explosion:Fe,matrix:Ce,fog:Pe,electric:Se,lightning:Te},Yt=e=>{if(e==="bubbles-yellow")return["#FFD700","#FFA500","#FFFF00"];if(e==="bubbles-pink")return["#FF69B4","#FF1493","#FFB6C1"];if(e==="bubbles-blue")return["#00BFFF","#87CEEB","#4169E1"];if(e==="bubbles-green")return["#00FF00","#32CD32","#98FB98"];if(e==="stars-color")return["#FFFFFF","#FFD700","#FFA500","#FF69B4"];let t=De[e];return t?t.defaultColors:["#FFFFFF"]};import{jsx as Or}from"react/jsx-runtime";var Zr=({effect:e,isActive:t=!0,options:r={},width:a="100%",height:o="100%",className:n="",style:s={}})=>{let p=ee(null),f=ee([]),l=ee(),c=ee({fireworksBurst:{x:0,y:0,frame:0},explosionBurst:{x:0,y:0,frame:0}}),m=De[e],{count:y=m?.defaultCount??30,speed:v=1,size:B=4,colors:P=Yt(e),opacity:w=1}=r,k=Be((x,b=!1)=>{let D=P[Math.floor(Math.random()*P.length)];return m?m.create(x,D,v,B,w,b,c.current):{x:Math.random()*x.width,y:Math.random()*x.height,vx:0,vy:0,size:Math.random()*B+1,color:D,opacity:Math.random()*w,life:Math.random()*60,maxLife:60+Math.random()*60}},[e,v,B,P,w,m]),$=Be((x,b)=>{if(m){m.draw(x,b);return}x.save(),x.globalAlpha=b.opacity,x.fillStyle=b.color,x.beginPath(),x.arc(b.x,b.y,b.size,0,Math.PI*2),x.fill(),x.restore()},[m]),j=Be((x,b)=>m?m.update(x,b,v):(x.life++,x.x+=x.vx,x.y+=x.vy,x.life<x.maxLife),[m,v]);return Vr(()=>{let x=p.current;if(!x||!t)return;let b=x.getContext("2d");if(!b)return;let D=()=>{let R=x.getBoundingClientRect();x.width=R.width,x.height=R.height};D(),window.addEventListener("resize",D),f.current=Array.from({length:y},()=>k(x,!0));let Y=()=>{if(b.clearRect(0,0,x.width,x.height),f.current=f.current.filter(R=>{let G=j(R,x);return G&&$(b,R),G}),e==="fireworks"){if(f.current.length<y*.3)for(c.current.fireworksBurst&&(c.current.fireworksBurst.frame=0);f.current.length<y;)f.current.push(k(x))}else if(e==="explosion"){if(f.current.length<y*.3)for(c.current.explosionBurst&&(c.current.explosionBurst.frame=0);f.current.length<y;)f.current.push(k(x))}else for(;f.current.length<y;)f.current.push(k(x));l.current=requestAnimationFrame(Y)};return Y(),()=>{window.removeEventListener("resize",D),l.current&&cancelAnimationFrame(l.current)}},[t,y,e,k,j,$]),Or("canvas",{ref:p,className:`vfx-particle ${n}`,style:{width:a,height:o,display:"block",pointerEvents:"none",...s}})};import wr,{useEffect as re,useRef as kr,useState as U,useCallback as z,useMemo as Mr}from"react";var Gt={enterKeyframes:`
912
+ `};var eo={"yellow-pulse":ut,"red-pulse":yt,"blue-pulse":ht,"green-pulse":Et,"pink-pulse":gt,"purple-pulse":bt,"yellow-sparkle":vt,"red-sparkle":wt,"blue-sparkle":kt,"green-sparkle":Mt,"pink-sparkle":Ct,"purple-sparkle":Ft,"rainbow-sparkle":Pt,"yellow-dash-flow":Tt,"red-dash-flow":St,"blue-dash-flow":Dt,"green-dash-flow":Bt,"pink-dash-flow":Rt,"purple-dash-flow":Lt,"yellow-dash-rotate":zt,"red-dash-rotate":It,"blue-dash-rotate":Nt,"green-dash-rotate":_t,"pink-dash-rotate":$t,"purple-dash-rotate":At,"rainbow-dash-rotate":Xt,rainbow:Kt,breathe:Yt,electric:Gt},Ht=()=>{let e=[];return Object.values(eo).forEach(t=>{t.keyframes&&e.push(t.keyframes),e.push(t.className)}),e.join(`
913
+ `)},Vt=e=>e?`vfx-border-${e}`:"";import{jsx as oo}from"react/jsx-runtime";var Ot=()=>{let e="border-effect-styles";if(document.getElementById(e))return;let t=document.createElement("style");t.id=e,t.textContent=Ht(),document.head.appendChild(t)},ro=({borderEffect:e,children:t,className:r="",style:a,...o})=>{to(()=>{Ot()},[]);let n=Vt(e);return oo("div",{...o,className:`vfx-div ${r} ${n}`.trim(),style:{...a,...e&&{boxShadow:"none"}},children:t})};import{useRef as ee,useEffect as ao,useCallback as Be}from"react";var se={defaultColors:["#FFD700","#FFA500","#FFFF00","#FFFFFF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r,vy:(Math.random()-.5)*r,size:Math.random()*a+1,color:t,opacity:Math.random()*o,life:0,maxLife:60+Math.random()*60}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.translate(t.x,t.y),e.beginPath();for(let r=0;r<4;r++)e.rotate(Math.PI/2),e.lineTo(0,t.size),e.lineTo(t.size/3,t.size/3);e.closePath(),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife)};var fe={defaultColors:["#FF6B6B","#4ECDC4","#45B7D1","#96CEB4","#FFEAA7","#DDA0DD"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:-10,vx:(Math.random()-.5)*r*2,vy:Math.random()*r*2+1,size:Math.random()*a+3,color:t,opacity:o,life:0,maxLife:200,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*10}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color,e.fillRect(-t.size/2,-t.size/4,t.size,t.size/2),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vy+=.05,e.vx*=.99,e.y<t.height+20)};var le={defaultColors:["#FFFFFF","#E8E8E8","#F0F8FF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-10,vx:(Math.random()-.5)*r*.5,vy:Math.random()*r+.5,size:Math.random()*a+1,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:300}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vx=Math.sin(e.life*.02)*.5,e.y<t.height+10)};var de={defaultColors:["#FFFF00","#ADFF2F","#7FFF00","#00FF7F"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r*.5,vy:(Math.random()-.5)*r*.5,size:Math.random()*a+2,color:t,opacity:0,life:0,maxLife:100+Math.random()*100}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=e.createRadialGradient(t.x,t.y,0,t.x,t.y,t.size*2);r.addColorStop(0,t.color),r.addColorStop(1,"transparent"),e.fillStyle=r,e.beginPath(),e.arc(t.x,t.y,t.size*2,0,Math.PI*2),e.fill(),e.restore()},update:(e,t,r)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI)*.8,Math.random()<.02&&(e.vx=(Math.random()-.5)*r*.5,e.vy=(Math.random()-.5)*r*.5),e.x<0&&(e.x=t.width),e.x>t.width&&(e.x=0),e.y<0&&(e.y=t.height),e.y>t.height&&(e.y=0),e.life<e.maxLife)};var X={defaultColors:["#87CEEB","#ADD8E6","#FF69B4","#98FB98","#DDA0DD"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:e.height+10,vx:(Math.random()-.5)*r*.3,vy:-(Math.random()*r+.5),size:Math.random()*a*2+3,color:t,opacity:Math.random()*.4+.2,life:0,maxLife:200}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.strokeStyle=t.color,e.lineWidth=1,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.stroke(),e.fillStyle="rgba(255,255,255,0.3)",e.beginPath(),e.arc(t.x-t.size/3,t.y-t.size/3,t.size/4,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vx=Math.sin(e.life*.03)*.3,e.y>-e.size*2)};var J={defaultColors:["#FFFFFF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:0,vy:0,size:Math.random()*a+1,color:t,opacity:Math.random()*o,life:Math.random()*60,maxLife:60+Math.random()*60}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.translate(t.x,t.y),e.beginPath();for(let r=0;r<5;r++)e.lineTo(Math.cos((18+r*72)*Math.PI/180)*t.size,-Math.sin((18+r*72)*Math.PI/180)*t.size),e.lineTo(Math.cos((54+r*72)*Math.PI/180)*t.size*.5,-Math.sin((54+r*72)*Math.PI/180)*t.size*.5);e.closePath(),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife)};var me={defaultColors:["#87CEEB","#ADD8E6","#6495ED"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-10,vx:-r*.1,vy:r*3+Math.random()*2,size:Math.random()*.5+.5,color:t,opacity:Math.random()*.4+.2,life:0,maxLife:200}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.strokeStyle=t.color,e.lineWidth=t.size,e.lineCap="round",e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(t.x+1,t.y+20),e.stroke(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.y<t.height+20)};var xe={defaultColors:["#8B4513","#D2691E","#CD853F","#DEB887","#F4A460","#FF4500","#FF6347","#DC143C","#FFD700","#FFA500"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-20,vx:(Math.random()-.5)*r*.3,vy:Math.random()*r*.3+.3,size:Math.random()*a+5,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:300,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*3,leafType:Math.floor(Math.random()*3)}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color;let r=t.size,a=t.leafType||0;if(a===0)e.beginPath(),e.ellipse(0,0,r,r/2,0,0,Math.PI*2),e.fill(),e.strokeStyle="rgba(0,0,0,0.2)",e.lineWidth=.5,e.beginPath(),e.moveTo(-r,0),e.lineTo(r,0),e.stroke();else if(a===1){e.beginPath();let o=r*.8;e.moveTo(0,-o*1.2),e.lineTo(-o*.3,-o*.5),e.lineTo(-o*1,-o*.6),e.lineTo(-o*.5,-o*.1),e.lineTo(-o*1.1,o*.3),e.lineTo(-o*.4,o*.3),e.lineTo(0,o*.8),e.lineTo(o*.4,o*.3),e.lineTo(o*1.1,o*.3),e.lineTo(o*.5,-o*.1),e.lineTo(o*1,-o*.6),e.lineTo(o*.3,-o*.5),e.closePath(),e.fill()}else{e.beginPath();let o=r;e.moveTo(0,o),e.quadraticCurveTo(-o*1.2,o*.3,-o*.8,-o*.5),e.quadraticCurveTo(0,-o*.2,o*.8,-o*.5),e.quadraticCurveTo(o*1.2,o*.3,0,o),e.fill()}e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.01)*.3,e.y<t.height+30)};var pe={defaultColors:["#FFB7C5","#FFC0CB","#FFD1DC","#FFDFEB"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-10,vx:(Math.random()-.5)*r*.5,vy:Math.random()*r*.3+.2,size:Math.random()*a+4,color:t,opacity:Math.random()*.4+.6,life:0,maxLife:400,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*2}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color,e.beginPath();let r=t.size;e.moveTo(0,-r),e.bezierCurveTo(r*.8,-r,r,-r*.3,r*.5,r*.3),e.quadraticCurveTo(0,r*.6,0,r*.8),e.quadraticCurveTo(0,r*.6,-r*.5,r*.3),e.bezierCurveTo(-r,-r*.3,-r*.8,-r,0,-r),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.008)*.2,e.y<t.height+20)};var ce={defaultColors:["#808080","#A9A9A9","#C0C0C0","#D3D3D3"],create:(e,t,r,a,o,n)=>({x:e.width/2+(Math.random()-.5)*50,y:e.height,vx:(Math.random()-.5)*r*.5,vy:-Math.random()*r-.5,size:Math.random()*a*3+10,color:t,opacity:Math.random()*.3+.1,life:0,maxLife:150}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=e.createRadialGradient(t.x,t.y,0,t.x,t.y,t.size);r.addColorStop(0,t.color),r.addColorStop(1,"transparent"),e.fillStyle=r,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.size+=.5,e.opacity*=.97,e.vx+=(Math.random()-.5)*.3,e.vx*=1.02,e.opacity>.01)};var ue={defaultColors:["#DEB887","#D2B48C","#C4A484","#BC8F8F"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r*.2,vy:(Math.random()-.5)*r*.2,size:Math.random()*2+1,color:t,opacity:Math.random()*.3+.1,life:0,maxLife:200+Math.random()*100}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t,r)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.opacity=Math.sin(e.life/e.maxLife*Math.PI)*.3,Math.random()<.01&&(e.vx=(Math.random()-.5)*r*.2,e.vy=(Math.random()-.5)*r*.2),e.life<e.maxLife)};var ye={defaultColors:["#FF0000","#FF7F00","#FFFF00","#00FF00","#0000FF","#8B00FF","#FFFFFF"],create:(e,t,r,a,o,n,i)=>{if(i?.fireworksBurst&&i.fireworksBurst.frame===0){let d=[{x:e.width*.15,y:e.height*.25},{x:e.width*.5,y:e.height*.2},{x:e.width*.85,y:e.height*.3},{x:e.width*.25,y:e.height*.45},{x:e.width*.75,y:e.height*.4},{x:e.width*.4,y:e.height*.35},{x:e.width*.6,y:e.height*.5}],u=d[Math.floor(Math.random()*d.length)];i.fireworksBurst.x=u.x+(Math.random()-.5)*30,i.fireworksBurst.y=u.y+(Math.random()-.5)*30,i.fireworksBurst.frame=1}let p=i?.fireworksBurst?.x??e.width/2,s=i?.fireworksBurst?.y??e.height/2,l=Math.random()*Math.PI*2,c=Math.random()*r*5+3;return{x:p,y:s,vx:Math.cos(l)*c,vy:Math.sin(l)*c,size:Math.random()*3+2,color:t,opacity:1,life:0,maxLife:45+Math.random()*15,burstCenterX:p,burstCenterY:s}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=t.x-t.vx*.5,a=t.y-t.vy*.5,o=e.createLinearGradient(r,a,t.x,t.y);o.addColorStop(0,"transparent"),o.addColorStop(1,t.color),e.strokeStyle=o,e.lineWidth=t.size,e.lineCap="round",e.beginPath(),e.moveTo(r,a),e.lineTo(t.x,t.y),e.stroke(),e.fillStyle="#FFFFFF",e.beginPath(),e.arc(t.x,t.y,t.size/2,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vy+=.08,e.vx*=.98,e.vy*=.98,e.opacity=1-e.life/e.maxLife,e.size*=.99,e.life<e.maxLife&&e.opacity>.05)};var he=(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate((t.rotation||0)*Math.PI/180),e.fillStyle=t.color,e.beginPath();let r=t.size/2;e.moveTo(0,r),e.bezierCurveTo(-r,-r/2,-r*2,r/2,0,r*2),e.bezierCurveTo(r*2,r/2,r,-r/2,0,r),e.fill(),e.restore()},Q={defaultColors:["#FF1493","#FF69B4","#FF6B6B","#E91E63"],defaultCount:15,create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:e.height+10,vx:(Math.random()-.5)*r,vy:-Math.random()*r*2-1,size:Math.random()*a+5,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:200,rotation:0,rotationSpeed:(Math.random()-.5)*2}),draw:he,update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.05)*.5,e.opacity=Math.max(0,1-e.life/e.maxLife),e.y>-e.size)},Ee={defaultColors:["#FF1493","#FF69B4","#FF6B6B","#E91E63"],defaultCount:15,create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:n?Math.random()*e.height:-20,vx:(Math.random()-.5)*r,vy:Math.random()*r*2+1,size:Math.random()*a+5,color:t,opacity:Math.random()*.5+.5,life:0,maxLife:200,rotation:0,rotationSpeed:(Math.random()-.5)*2}),draw:he,update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vx=Math.sin(e.life*.05)*.5,e.opacity=Math.max(0,1-e.life/e.maxLife),e.y<t.height+e.size)},ge={defaultColors:["#FF1493","#FF69B4","#FF6B6B","#E91E63"],defaultCount:15,create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:0,vy:0,size:0,color:t,opacity:0,life:0,maxLife:60+Math.random()*40,rotation:(Math.random()-.5)*30,rotationSpeed:0,leafType:a*(.7+Math.random()*2.3)}),draw:he,update:(e,t)=>{e.life++;let r=e.life/e.maxLife,a=e.leafType||10;if(r<.3){let o=r/.3;e.opacity=o,e.size=a*o}else if(r<.7)e.opacity=1,e.size=a;else{let o=(r-.7)/.3;e.opacity=1-o,e.size=a*(1+o*.3)}return e.life<e.maxLife}},be=Q;var ve={defaultColors:["#FFD700","#FFA500","#DAA520","#B8860B"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:-20,vx:(Math.random()-.5)*r,vy:Math.random()*r*3+2,size:Math.random()*a+8,color:t,opacity:1,life:0,maxLife:200,rotation:Math.random()*360,rotationSpeed:(Math.random()-.5)*15}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y);let r=Math.cos((t.rotation||0)*Math.PI/180);e.scale(r,1),e.fillStyle=t.color,e.beginPath(),e.arc(0,0,t.size/2,0,Math.PI*2),e.fill(),e.strokeStyle="#B8860B",e.lineWidth=2,e.stroke(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation!==void 0&&e.rotationSpeed!==void 0&&(e.rotation+=e.rotationSpeed),e.vy+=.1,e.y<t.height+30)};var we={defaultColors:["#FF6B6B","#4ECDC4","#45B7D1","#FFEAA7","#DDA0DD","#98D8C8"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:e.height+20,vx:(Math.random()-.5)*r*.5,vy:-Math.random()*r-.8,size:Math.random()*a*2+10,color:t,opacity:.9,life:0,maxLife:400}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.ellipse(t.x,t.y,t.size/2,t.size/1.5,0,0,Math.PI*2),e.fill(),e.strokeStyle="#666",e.lineWidth=1,e.beginPath(),e.moveTo(t.x,t.y+t.size/1.5),e.quadraticCurveTo(t.x+5,t.y+t.size,t.x,t.y+t.size*1.5),e.stroke(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.vx=Math.sin(e.life*.02)*.3,e.y>-e.size*2)};var ke={defaultColors:["#8A2BE2","#9400D3","#BA55D3","#DA70D6","#EE82EE"],create:(e,t,r,a,o,n)=>{let i=Math.random()*Math.PI*2,p=Math.random()*50;return{x:e.width/2+Math.cos(i)*p,y:e.height/2+Math.sin(i)*p,vx:Math.cos(i)*r*2,vy:Math.sin(i)*r*2,size:Math.random()*a+2,color:t,opacity:1,life:0,maxLife:60+Math.random()*40,rotation:Math.random()*Math.PI*2,rotationSpeed:(Math.random()-.5)*.15}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate(t.rotation||0),e.fillStyle="#FFFFFF",e.beginPath(),e.arc(0,0,t.size*.3,0,Math.PI*2),e.fill(),e.fillStyle=t.color;let r=t.size*1.5,a=t.size*.15;e.beginPath(),e.moveTo(0,-r),e.lineTo(a,-a),e.lineTo(r,0),e.lineTo(a,a),e.lineTo(0,r),e.lineTo(-a,a),e.lineTo(-r,0),e.lineTo(-a,-a),e.closePath(),e.fill(),e.rotate(Math.PI/4);let o=t.size*.8,n=t.size*.1;e.beginPath(),e.moveTo(0,-o),e.lineTo(n,-n),e.lineTo(o,0),e.lineTo(n,n),e.lineTo(0,o),e.lineTo(-n,n),e.lineTo(-o,0),e.lineTo(-n,-n),e.closePath(),e.fill(),e.rotate(-Math.PI/4),e.fillStyle=t.color;for(let i=0;i<3;i++){let p=((t.rotation||0)*2+i*2.1)%(Math.PI*2),s=t.size*(1.5+Math.sin(t.life*3+i)*.5),l=t.size*.15;e.beginPath(),e.arc(Math.cos(p)*s,Math.sin(p)*s,l,0,Math.PI*2),e.fill()}e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation=(e.rotation||0)+(e.rotationSpeed||.05),e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife)};var Me={defaultColors:["#00CED1","#00BFFF","#1E90FF","#4169E1","#6A5ACD"],create:(e,t,r,a,o,n)=>{let i=Math.random()*Math.PI*2,p=30+Math.random()*30;return{x:e.width/2+Math.cos(i)*p,y:e.height/2+Math.sin(i)*p,vx:0,vy:0,size:Math.random()*a+2,color:t,opacity:1,life:0,maxLife:100,rotation:i*(180/Math.PI),rotationSpeed:3}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.fillStyle=t.color,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>{e.life++;let r=(e.rotation||0)*Math.PI/180+e.life*.05,a=30+Math.sin(e.life*.1)*10;return e.x=t.width/2+Math.cos(r)*a,e.y=t.height/2+Math.sin(r)*a,e.opacity=Math.sin(e.life/e.maxLife*Math.PI),e.life<e.maxLife}};var Ce={defaultColors:["#FF2200","#FF4400","#FF6600","#FF3300","#CC1100","#FFAA00"],create:(e,t,r,a,o,n,i)=>{i?.explosionBurst&&i.explosionBurst.frame===0&&(i.explosionBurst.x=e.width/2+(Math.random()-.5)*80,i.explosionBurst.y=e.height-10,i.explosionBurst.frame=1);let p=i?.explosionBurst?.x??e.width/2,s=i?.explosionBurst?.y??e.height-10,l=-Math.PI*.85+Math.random()*Math.PI*.7,c=Math.random()*r*8+4;return{x:p,y:s,vx:Math.cos(l)*c,vy:Math.sin(l)*c-3,size:Math.random()*a*1.5+4,color:t,opacity:1,life:0,maxLife:35+Math.random()*15,rotation:Math.random()*Math.PI*2,rotationSpeed:(Math.random()-.5)*.3}},draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.translate(t.x,t.y),e.rotate(t.rotation||0);let r=5+Math.floor(Math.random()*3),a=t.size,o=t.size*.3,n=e.createRadialGradient(0,0,0,0,0,a);n.addColorStop(0,"#FFFF88"),n.addColorStop(.2,"#FFAA00"),n.addColorStop(.5,t.color),n.addColorStop(1,"#330000"),e.fillStyle=n,e.beginPath();for(let i=0;i<r*2;i++){let p=i*Math.PI/r,s=.7+Math.sin(t.life*.5+i)*.3,l=i%2===0?a*s:o*s,c=Math.cos(p)*l,d=Math.sin(p)*l;i===0?e.moveTo(c,d):e.lineTo(c,d)}e.closePath(),e.fill(),e.fillStyle="#FFFFFF",e.beginPath(),e.arc(0,0,t.size*.15,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.rotation=(e.rotation||0)+(e.rotationSpeed||.1),e.vx*=.94,e.vy*=.94,e.vy+=.15,e.opacity=1-e.life/e.maxLife,e.size*=.97,e.life<e.maxLife)};var Fe={defaultColors:["#00FF00","#32CD32","#90EE90"],create:(e,t,r,a,o,n)=>{let i=10+Math.floor(Math.random()*15),p="";for(let s=0;s<i;s++)p+=Math.random()>.5?"1":"0";return{x:Math.floor(Math.random()*(e.width/11))*11,y:-i*11,vx:0,vy:Math.random()*r*3+2,size:10,color:t,opacity:1,life:0,maxLife:500,codeString:p}},draw:(e,t)=>{e.save(),e.font=`${t.size}px monospace`;let r=t.codeString||"01010101";for(let a=0;a<r.length;a++){let o=Math.max(0,t.opacity*(1-a*.06));a===0?e.fillStyle=`rgba(255, 255, 255, ${o})`:e.fillStyle=`rgba(0, 255, 0, ${o})`,e.fillText(r[a],t.x,t.y+a*11)}e.restore()},update:(e,t)=>{e.life++,e.x+=e.vx,e.y+=e.vy;let a=(e.codeString||"").length*11;return e.y>t.height+a?!1:(e.opacity=Math.max(0,1-e.life/e.maxLife*.5),e.opacity>0)}};var Pe={defaultColors:["#FFFFFF","#F5F5F5","#E8E8E8"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:Math.random()*e.height,vx:(Math.random()-.5)*r*.2,vy:(Math.random()-.5)*r*.1,size:Math.random()*40+20,color:t,opacity:Math.random()*.08+.02,life:0,maxLife:300+Math.random()*200}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity;let r=e.createRadialGradient(t.x,t.y,0,t.x,t.y,t.size);r.addColorStop(0,t.color),r.addColorStop(1,"transparent"),e.fillStyle=r,e.beginPath(),e.arc(t.x,t.y,t.size,0,Math.PI*2),e.fill(),e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.x<-e.size&&(e.x=t.width+e.size),e.x>t.width+e.size&&(e.x=-e.size),e.opacity=Math.sin(e.life/e.maxLife*Math.PI)*.08,e.life<e.maxLife)};var Te={defaultColors:["#FFFFFF","#F0FFFF","#87CEEB","#00BFFF"],create:(e,t,r,a,o,n)=>({x:Math.random()*e.width,y:0,vx:0,vy:0,size:Math.random()*3+1,color:t,opacity:1,life:0,maxLife:5+Math.random()*10}),draw:(e,t)=>{e.save(),e.globalAlpha=t.opacity,e.strokeStyle=t.color,e.lineWidth=t.size,e.shadowColor=t.color,e.shadowBlur=10,e.beginPath();let r=t.x,a=t.y;e.moveTo(r,a);let o=8,n=150/o;for(let i=0;i<o;i++)r+=(Math.random()-.5)*30,a+=n,e.lineTo(r,a);e.stroke(),e.shadowBlur=0,e.restore()},update:(e,t)=>(e.life++,e.x+=e.vx,e.y+=e.vy,e.life<e.maxLife)};var Se={defaultColors:["#FFFF00","#FFD700","#FFA500"],create:(e,t,r,a,o,n)=>{let i=e.width*.3+Math.random()*e.width*.4,p=e.height*.85,s=Math.random()>.5?5:4,l=[],c=i;l.push(`${i},0`);let d=Math.random()>.5?1:-1;for(let w=0;w<s;w++){let h=(w+1)/(s+1),E=p*(h*.85+Math.random()*.08),z=d*(20+Math.random()*35);c+=z,l.push(`${c},${E}`),d*=-1}l.push(`${c},${p}`);let u=l.join("|"),g=15+Math.random()*8;return{x:i,y:0,vx:0,vy:0,size:Math.random()*1+1.5,color:t,opacity:1,life:0,maxLife:g+60,codeString:u,rotation:g}},draw:(e,t)=>{e.save();let r=t.life<2?.5*t.opacity:.15*t.opacity;e.globalAlpha=r,e.fillStyle="#FFFFCC",e.fillRect(0,0,e.canvas.width,e.canvas.height);let o=(t.codeString||"").split("|").map(s=>{let[l,c]=s.split(",");return{x:parseFloat(l),y:parseFloat(c)}});if(o.length<2){e.restore();return}e.globalAlpha=t.opacity,e.lineJoin="miter",e.miterLimit=15,e.lineCap="round";let n=o[o.length-1],i=(s,l,c)=>{e.strokeStyle=s,e.lineWidth=l,e.shadowColor=s==="#FFFF88"?"#FFFFFF":"#FFD700",e.shadowBlur=c,e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let d=1;d<o.length;d++)e.lineTo(o[d].x,o[d].y);e.stroke()},p=(s,l,c)=>{e.fillStyle=s,e.shadowColor=s==="#FFFF88"?"#FFFFFF":"#FFD700",e.shadowBlur=c;let d=8,u=l*.5;e.beginPath(),e.moveTo(n.x-u/2,n.y),e.lineTo(n.x+u/2,n.y),e.lineTo(n.x,n.y+d),e.closePath(),e.fill()};i("#FFA500",t.size+3,25),p("#FFA500",t.size+3,25),i("#FFD700",t.size+1,12),p("#FFD700",t.size+1,12),i("#FFFF88",Math.max(1,t.size-1),5),p("#FFFF88",Math.max(1,t.size-1),5),e.restore()},update:(e,t)=>{e.life++;let r=e.rotation||20;return e.life<3?e.opacity=1:e.life<r?e.opacity=Math.max(0,1-(e.life-3)/(r-3)):e.opacity=0,e.life<e.maxLife}};var De={sparkle:se,confetti:fe,snow:le,firefly:de,"bubbles-color":X,"bubbles-yellow":X,"bubbles-pink":X,"bubbles-blue":X,"bubbles-green":X,stars:J,"stars-color":J,rain:me,leaves:xe,sakura:pe,smoke:ce,dust:ue,fireworks:ye,hearts:be,"hearts-up":Q,"hearts-down":Ee,"hearts-pop":ge,coins:ve,balloons:we,magic:ke,portal:Me,explosion:Ce,matrix:Fe,fog:Pe,electric:Te,lightning:Se},Zt=e=>{if(e==="bubbles-yellow")return["#FFD700","#FFA500","#FFFF00"];if(e==="bubbles-pink")return["#FF69B4","#FF1493","#FFB6C1"];if(e==="bubbles-blue")return["#00BFFF","#87CEEB","#4169E1"];if(e==="bubbles-green")return["#00FF00","#32CD32","#98FB98"];if(e==="stars-color")return["#FFFFFF","#FFD700","#FFA500","#FF69B4"];let t=De[e];return t?t.defaultColors:["#FFFFFF"]};import{jsx as io}from"react/jsx-runtime";var no=({effect:e,isActive:t=!0,options:r={},width:a="100%",height:o="100%",className:n="",style:i={}})=>{let p=ee(null),s=ee([]),l=ee(),c=ee({fireworksBurst:{x:0,y:0,frame:0},explosionBurst:{x:0,y:0,frame:0}}),d=De[e],{count:u=d?.defaultCount??30,speed:g=1,size:C=4,colors:w=Zt(e),opacity:h=1}=r,E=Be((m,y=!1)=>{let F=w[Math.floor(Math.random()*w.length)];return d?d.create(m,F,g,C,h,y,c.current):{x:Math.random()*m.width,y:Math.random()*m.height,vx:0,vy:0,size:Math.random()*C+1,color:F,opacity:Math.random()*h,life:Math.random()*60,maxLife:60+Math.random()*60}},[e,g,C,w,h,d]),z=Be((m,y)=>{if(d){d.draw(m,y);return}m.save(),m.globalAlpha=y.opacity,m.fillStyle=y.color,m.beginPath(),m.arc(y.x,y.y,y.size,0,Math.PI*2),m.fill(),m.restore()},[d]),K=Be((m,y)=>d?d.update(m,y,g):(m.life++,m.x+=m.vx,m.y+=m.vy,m.life<m.maxLife),[d,g]);return ao(()=>{let m=p.current;if(!m||!t)return;let y=m.getContext("2d");if(!y)return;let F=()=>{let R=m.getBoundingClientRect();m.width=R.width,m.height=R.height};F(),window.addEventListener("resize",F),s.current=Array.from({length:u},()=>E(m,!0));let I=()=>{if(y.clearRect(0,0,m.width,m.height),s.current=s.current.filter(R=>{let L=K(R,m);return L&&z(y,R),L}),e==="fireworks"){if(s.current.length<u*.3)for(c.current.fireworksBurst&&(c.current.fireworksBurst.frame=0);s.current.length<u;)s.current.push(E(m))}else if(e==="explosion"){if(s.current.length<u*.3)for(c.current.explosionBurst&&(c.current.explosionBurst.frame=0);s.current.length<u;)s.current.push(E(m))}else for(;s.current.length<u;)s.current.push(E(m));l.current=requestAnimationFrame(I)};return I(),()=>{window.removeEventListener("resize",F),l.current&&cancelAnimationFrame(l.current)}},[t,u,e,E,K,z]),io("canvas",{ref:p,className:`vfx-particle ${n}`,style:{width:a,height:o,display:"block",pointerEvents:"none",...i}})};import Pr,{useEffect as re,useRef as Tr,useState as W,useCallback as _,useMemo as Sr}from"react";var Ut={enterKeyframes:`
910
914
  @keyframes slideFadeEnter {
911
915
  from { opacity: 0; }
912
916
  to { opacity: 1; }
@@ -924,7 +928,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
924
928
  .vfx-slide-fade-exit {
925
929
  animation: slideFadeExit var(--slide-duration, 500ms) ease-in forwards;
926
930
  }
927
- `},Ht={enterKeyframes:`
931
+ `},Wt={enterKeyframes:`
928
932
  @keyframes slideFadeUpEnter {
929
933
  from {
930
934
  opacity: 0;
@@ -954,7 +958,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
954
958
  .vfx-slide-fade-up-exit {
955
959
  animation: slideFadeUpExit var(--slide-duration, 500ms) ease-in forwards;
956
960
  }
957
- `},Vt={enterKeyframes:`
961
+ `},jt={enterKeyframes:`
958
962
  @keyframes slideFadeDownEnter {
959
963
  from {
960
964
  opacity: 0;
@@ -984,7 +988,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
984
988
  .vfx-slide-fade-down-exit {
985
989
  animation: slideFadeDownExit var(--slide-duration, 500ms) ease-in forwards;
986
990
  }
987
- `},Zt={enterKeyframes:`
991
+ `},qt={enterKeyframes:`
988
992
  @keyframes slideFadeLeftEnter {
989
993
  from {
990
994
  opacity: 0;
@@ -1014,7 +1018,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1014
1018
  .vfx-slide-fade-left-exit {
1015
1019
  animation: slideFadeLeftExit var(--slide-duration, 500ms) ease-in forwards;
1016
1020
  }
1017
- `},Ot={enterKeyframes:`
1021
+ `},Jt={enterKeyframes:`
1018
1022
  @keyframes slideFadeRightEnter {
1019
1023
  from {
1020
1024
  opacity: 0;
@@ -1044,7 +1048,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1044
1048
  .vfx-slide-fade-right-exit {
1045
1049
  animation: slideFadeRightExit var(--slide-duration, 500ms) ease-in forwards;
1046
1050
  }
1047
- `};var Ut={enterKeyframes:`
1051
+ `};var Qt={enterKeyframes:`
1048
1052
  @keyframes slideUpEnter {
1049
1053
  from { transform: translateY(100%); }
1050
1054
  to { transform: translateY(0); }
@@ -1062,7 +1066,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1062
1066
  .vfx-slide-slide-up-exit {
1063
1067
  animation: slideUpExit var(--slide-duration, 500ms) ease-in forwards;
1064
1068
  }
1065
- `},Wt={enterKeyframes:`
1069
+ `},er={enterKeyframes:`
1066
1070
  @keyframes slideDownEnter {
1067
1071
  from { transform: translateY(-100%); }
1068
1072
  to { transform: translateY(0); }
@@ -1080,7 +1084,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1080
1084
  .vfx-slide-slide-down-exit {
1081
1085
  animation: slideDownExit var(--slide-duration, 500ms) ease-in forwards;
1082
1086
  }
1083
- `},jt={enterKeyframes:`
1087
+ `},tr={enterKeyframes:`
1084
1088
  @keyframes slideLeftEnter {
1085
1089
  from { transform: translateX(100%); }
1086
1090
  to { transform: translateX(0); }
@@ -1098,7 +1102,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1098
1102
  .vfx-slide-slide-left-exit {
1099
1103
  animation: slideLeftExit var(--slide-duration, 500ms) ease-in forwards;
1100
1104
  }
1101
- `},qt={enterKeyframes:`
1105
+ `},rr={enterKeyframes:`
1102
1106
  @keyframes slideRightEnter {
1103
1107
  from { transform: translateX(-100%); }
1104
1108
  to { transform: translateX(0); }
@@ -1116,7 +1120,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1116
1120
  .vfx-slide-slide-right-exit {
1117
1121
  animation: slideRightExit var(--slide-duration, 500ms) ease-in forwards;
1118
1122
  }
1119
- `};var Jt={enterKeyframes:`
1123
+ `};var or={enterKeyframes:`
1120
1124
  @keyframes slideRotateLeftEnter {
1121
1125
  from {
1122
1126
  opacity: 0;
@@ -1146,7 +1150,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1146
1150
  .vfx-slide-rotate-left-exit {
1147
1151
  animation: slideRotateLeftExit var(--slide-duration, 600ms) ease-in forwards;
1148
1152
  }
1149
- `,defaultDuration:600},Qt={enterKeyframes:`
1153
+ `,defaultDuration:600},ar={enterKeyframes:`
1150
1154
  @keyframes slideRotateRightEnter {
1151
1155
  from {
1152
1156
  opacity: 0;
@@ -1176,7 +1180,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1176
1180
  .vfx-slide-rotate-right-exit {
1177
1181
  animation: slideRotateRightExit var(--slide-duration, 600ms) ease-in forwards;
1178
1182
  }
1179
- `,defaultDuration:600},er={enterKeyframes:`
1183
+ `,defaultDuration:600},nr={enterKeyframes:`
1180
1184
  @keyframes slideRotateInEnter {
1181
1185
  from {
1182
1186
  opacity: 0;
@@ -1206,7 +1210,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1206
1210
  .vfx-slide-rotate-in-exit {
1207
1211
  animation: slideRotateInExit var(--slide-duration, 700ms) ease-in forwards;
1208
1212
  }
1209
- `,defaultDuration:700},tr={enterKeyframes:`
1213
+ `,defaultDuration:700},ir={enterKeyframes:`
1210
1214
  @keyframes slideRotateOutEnter {
1211
1215
  from {
1212
1216
  opacity: 0;
@@ -1236,7 +1240,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1236
1240
  .vfx-slide-rotate-out-exit {
1237
1241
  animation: slideRotateOutExit var(--slide-duration, 700ms) ease-in forwards;
1238
1242
  }
1239
- `,defaultDuration:700};var rr={enterKeyframes:`
1243
+ `,defaultDuration:700};var sr={enterKeyframes:`
1240
1244
  @keyframes slideFlipXEnter {
1241
1245
  from {
1242
1246
  opacity: 0;
@@ -1268,7 +1272,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1268
1272
  animation: slideFlipXExit var(--slide-duration, 600ms) ease-in forwards;
1269
1273
  transform-style: preserve-3d;
1270
1274
  }
1271
- `,defaultDuration:600},or={enterKeyframes:`
1275
+ `,defaultDuration:600},fr={enterKeyframes:`
1272
1276
  @keyframes slideFlipYEnter {
1273
1277
  from {
1274
1278
  opacity: 0;
@@ -1300,7 +1304,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1300
1304
  animation: slideFlipYExit var(--slide-duration, 600ms) ease-in forwards;
1301
1305
  transform-style: preserve-3d;
1302
1306
  }
1303
- `,defaultDuration:600},ar={enterKeyframes:`
1307
+ `,defaultDuration:600},lr={enterKeyframes:`
1304
1308
  @keyframes slideFlipDiagonalEnter {
1305
1309
  from {
1306
1310
  opacity: 0;
@@ -1332,7 +1336,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1332
1336
  animation: slideFlipDiagonalExit var(--slide-duration, 700ms) ease-in forwards;
1333
1337
  transform-style: preserve-3d;
1334
1338
  }
1335
- `,defaultDuration:700};var nr={enterKeyframes:`
1339
+ `,defaultDuration:700};var dr={enterKeyframes:`
1336
1340
  @keyframes slideZoomInEnter {
1337
1341
  from {
1338
1342
  opacity: 0;
@@ -1362,7 +1366,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1362
1366
  .vfx-slide-zoom-in-exit {
1363
1367
  animation: slideZoomInExit var(--slide-duration, 500ms) ease-in forwards;
1364
1368
  }
1365
- `,defaultDuration:500},sr={enterKeyframes:`
1369
+ `,defaultDuration:500},mr={enterKeyframes:`
1366
1370
  @keyframes slideZoomOutEnter {
1367
1371
  from {
1368
1372
  opacity: 0;
@@ -1392,7 +1396,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1392
1396
  .vfx-slide-zoom-out-exit {
1393
1397
  animation: slideZoomOutExit var(--slide-duration, 500ms) ease-in forwards;
1394
1398
  }
1395
- `,defaultDuration:500},ir={enterKeyframes:`
1399
+ `,defaultDuration:500},xr={enterKeyframes:`
1396
1400
  @keyframes slideZoomLeftEnter {
1397
1401
  from {
1398
1402
  opacity: 0;
@@ -1428,7 +1432,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1428
1432
  animation: slideZoomLeftExit var(--slide-duration, 500ms) ease-in forwards;
1429
1433
  transform-origin: left center;
1430
1434
  }
1431
- `,defaultDuration:500},fr={enterKeyframes:`
1435
+ `,defaultDuration:500},pr={enterKeyframes:`
1432
1436
  @keyframes slideZoomRightEnter {
1433
1437
  from {
1434
1438
  opacity: 0;
@@ -1464,7 +1468,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1464
1468
  animation: slideZoomRightExit var(--slide-duration, 500ms) ease-in forwards;
1465
1469
  transform-origin: right center;
1466
1470
  }
1467
- `,defaultDuration:500},lr={enterKeyframes:`
1471
+ `,defaultDuration:500},cr={enterKeyframes:`
1468
1472
  @keyframes slideZoomTopEnter {
1469
1473
  from {
1470
1474
  opacity: 0;
@@ -1500,7 +1504,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1500
1504
  animation: slideZoomTopExit var(--slide-duration, 500ms) ease-in forwards;
1501
1505
  transform-origin: center top;
1502
1506
  }
1503
- `,defaultDuration:500},dr={enterKeyframes:`
1507
+ `,defaultDuration:500},ur={enterKeyframes:`
1504
1508
  @keyframes slideZoomBottomEnter {
1505
1509
  from {
1506
1510
  opacity: 0;
@@ -1536,7 +1540,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1536
1540
  animation: slideZoomBottomExit var(--slide-duration, 500ms) ease-in forwards;
1537
1541
  transform-origin: center bottom;
1538
1542
  }
1539
- `,defaultDuration:500};var mr={enterKeyframes:`
1543
+ `,defaultDuration:500};var yr={enterKeyframes:`
1540
1544
  @keyframes slideBounceEnter {
1541
1545
  0% {
1542
1546
  opacity: 0;
@@ -1575,7 +1579,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1575
1579
  .vfx-slide-bounce-exit {
1576
1580
  animation: slideBounceExit var(--slide-duration, 500ms) ease-in forwards;
1577
1581
  }
1578
- `,defaultDuration:700},xr={enterKeyframes:`
1582
+ `,defaultDuration:700},hr={enterKeyframes:`
1579
1583
  @keyframes slideElasticEnter {
1580
1584
  0% {
1581
1585
  opacity: 0;
@@ -1617,7 +1621,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1617
1621
  .vfx-slide-elastic-exit {
1618
1622
  animation: slideElasticExit var(--slide-duration, 500ms) ease-in forwards;
1619
1623
  }
1620
- `,defaultDuration:800},pr={enterKeyframes:`
1624
+ `,defaultDuration:800},Er={enterKeyframes:`
1621
1625
  @keyframes slideSwingEnter {
1622
1626
  0% {
1623
1627
  opacity: 0;
@@ -1651,7 +1655,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1651
1655
  animation: slideSwingExit var(--slide-duration, 500ms) ease-in forwards;
1652
1656
  transform-style: preserve-3d;
1653
1657
  }
1654
- `,defaultDuration:600},cr={enterKeyframes:`
1658
+ `,defaultDuration:600},gr={enterKeyframes:`
1655
1659
  @keyframes slideBlurEnter {
1656
1660
  from {
1657
1661
  opacity: 0;
@@ -1685,7 +1689,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1685
1689
  .vfx-slide-blur-exit {
1686
1690
  animation: slideBlurExit var(--slide-duration, 600ms) ease-in forwards;
1687
1691
  }
1688
- `,defaultDuration:600},yr={enterKeyframes:`
1692
+ `,defaultDuration:600},br={enterKeyframes:`
1689
1693
  @keyframes slideKenburnsEnter {
1690
1694
  from {
1691
1695
  opacity: 0;
@@ -1715,7 +1719,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1715
1719
  .vfx-slide-kenburns-exit {
1716
1720
  animation: slideKenburnsExit var(--slide-duration, 1000ms) ease-in forwards;
1717
1721
  }
1718
- `,defaultDuration:1e3};var ur={enterKeyframes:`
1722
+ `,defaultDuration:1e3};var vr={enterKeyframes:`
1719
1723
  @keyframes slideDriftLeftEnter {
1720
1724
  from {
1721
1725
  opacity: 0;
@@ -1752,7 +1756,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1752
1756
  .vfx-slide-drift-left-exit {
1753
1757
  animation: slideDriftLeftExit 500ms ease-in forwards;
1754
1758
  }
1755
- `,defaultDuration:500},hr={enterKeyframes:`
1759
+ `,defaultDuration:500},wr={enterKeyframes:`
1756
1760
  @keyframes slideDriftRightEnter {
1757
1761
  from {
1758
1762
  opacity: 0;
@@ -1789,7 +1793,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1789
1793
  .vfx-slide-drift-right-exit {
1790
1794
  animation: slideDriftRightExit 500ms ease-in forwards;
1791
1795
  }
1792
- `,defaultDuration:500},Er={enterKeyframes:`
1796
+ `,defaultDuration:500},kr={enterKeyframes:`
1793
1797
  @keyframes slideDriftUpEnter {
1794
1798
  from {
1795
1799
  opacity: 0;
@@ -1826,7 +1830,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1826
1830
  .vfx-slide-drift-up-exit {
1827
1831
  animation: slideDriftUpExit 500ms ease-in forwards;
1828
1832
  }
1829
- `,defaultDuration:500},gr={enterKeyframes:`
1833
+ `,defaultDuration:500},Mr={enterKeyframes:`
1830
1834
  @keyframes slideDriftDownEnter {
1831
1835
  from {
1832
1836
  opacity: 0;
@@ -1863,7 +1867,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1863
1867
  .vfx-slide-drift-down-exit {
1864
1868
  animation: slideDriftDownExit 500ms ease-in forwards;
1865
1869
  }
1866
- `,defaultDuration:500},br={enterKeyframes:`
1870
+ `,defaultDuration:500},Cr={enterKeyframes:`
1867
1871
  @keyframes slideDriftZoomEnter {
1868
1872
  from {
1869
1873
  opacity: 0;
@@ -1900,7 +1904,7 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1900
1904
  .vfx-slide-drift-zoom-exit {
1901
1905
  animation: slideDriftZoomExit 500ms ease-in forwards;
1902
1906
  }
1903
- `,defaultDuration:500},vr={enterKeyframes:`
1907
+ `,defaultDuration:500},Fr={enterKeyframes:`
1904
1908
  @keyframes slideDriftRandomEnter {
1905
1909
  from {
1906
1910
  opacity: 0;
@@ -1937,18 +1941,18 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
1937
1941
  .vfx-slide-drift-random-exit {
1938
1942
  animation: slideDriftRandomExit 500ms ease-in forwards;
1939
1943
  }
1940
- `,defaultDuration:500};var O={fade:Gt,"fade-up":Ht,"fade-down":Vt,"fade-left":Zt,"fade-right":Ot,"slide-up":Ut,"slide-down":Wt,"slide-left":jt,"slide-right":qt,"rotate-left":Jt,"rotate-right":Qt,"rotate-in":er,"rotate-out":tr,"flip-x":rr,"flip-y":or,"flip-diagonal":ar,"zoom-in":nr,"zoom-out":sr,"zoom-left":ir,"zoom-right":fr,"zoom-top":lr,"zoom-bottom":dr,bounce:mr,elastic:xr,swing:pr,blur:cr,kenburns:yr},te={"drift-left":ur,"drift-right":hr,"drift-up":Er,"drift-down":gr,"drift-zoom":br,"drift-random":vr};import{Fragment as Wr,jsx as W,jsxs as Fr}from"react/jsx-runtime";var Cr=({children:e,effect:t="fade",driftEffect:r="none",activeIndex:a,onSlideChange:o,autoPlay:n=!1,autoPlayInterval:s=5e3,duration:p,loop:f=!0,pauseOnHover:l=!0,className:c="",style:m={},showNavigation:y=!0,showIndicators:v=!0,enableKeyboard:B=!0,enableSwipe:P=!0})=>{let w=Mr(()=>wr.Children.toArray(e).map(d=>{if(wr.isValidElement(d)&&d.type?.displayName==="VfxSlideItem"){let i=d.props;return{content:i.children,effect:i.effect,driftEffect:i.driftEffect,duration:i.duration,interval:i.interval,className:i.className,style:i.style}}return{content:d}}),[e]),k=w.length,[$,j]=U(0),[x,b]=U(null),[D,Y]=U(!1),[R,G]=U(!1),[Re,Sr]=U(""),Tr=kr(null),H=kr(null),F=a!==void 0?a:$,q=z(d=>{let i=w[d];return{effect:i?.effect||t,driftEffect:i?.driftEffect||r,duration:i?.duration||p,interval:i?.interval||s}},[w,t,r,p,s]),A=q(F);re(()=>{if(A.driftEffect==="drift-random"){let i=["drift-left","drift-right","drift-up","drift-down","drift-zoom"],C=i[Math.floor(Math.random()*i.length)];console.log(`[VfxSlide] \uC2AC\uB77C\uC774\uB4DC ${F}: drift-random \u2192 ${C}`),Sr(C)}},[A.driftEffect,F]);let Dr=Mr(()=>O[A.effect]||O.fade,[A.effect]),oe=A.duration||Dr.defaultDuration;re(()=>{let d=new Set([t]),i=new Set;r!=="none"&&i.add(r),w.forEach(E=>{E.effect&&d.add(E.effect),E.driftEffect&&E.driftEffect!=="none"&&i.add(E.driftEffect)}),d.forEach(E=>{let T=`vfx-slide-${E}`;if(!document.getElementById(T)){let u=O[E];if(u){let S=document.createElement("style");S.id=T,S.textContent=`
1941
- ${u.enterKeyframes}
1942
- ${u.exitKeyframes}
1943
- ${u.enterClass}
1944
- ${u.exitClass}
1945
- `,document.head.appendChild(S)}}}),i.forEach(E=>{if(E==="drift-random")["drift-left","drift-right","drift-up","drift-down","drift-zoom"].forEach(u=>{let S=te[u],L=`vfx-slide-drift-${u}`;if(S&&!document.getElementById(L)){let ae=document.createElement("style");ae.id=L,ae.textContent=`
1946
- ${S.enterKeyframes}
1947
- ${S.enterClass}
1948
- `,document.head.appendChild(ae)}});else{let T=te[E],u=`vfx-slide-drift-${E}`;if(T&&!document.getElementById(u)){let S=document.createElement("style");S.id=u,S.textContent=`
1949
- ${T.enterKeyframes}
1950
- ${T.enterClass}
1951
- `,document.head.appendChild(S)}}});let C="vfx-slide-common";if(!document.getElementById(C)){let E=document.createElement("style");E.id=C,E.textContent=`
1944
+ `,defaultDuration:500};var U={fade:Ut,"fade-up":Wt,"fade-down":jt,"fade-left":qt,"fade-right":Jt,"slide-up":Qt,"slide-down":er,"slide-left":tr,"slide-right":rr,"rotate-left":or,"rotate-right":ar,"rotate-in":nr,"rotate-out":ir,"flip-x":sr,"flip-y":fr,"flip-diagonal":lr,"zoom-in":dr,"zoom-out":mr,"zoom-left":xr,"zoom-right":pr,"zoom-top":cr,"zoom-bottom":ur,bounce:yr,elastic:hr,swing:Er,blur:gr,kenburns:br},te={"drift-left":vr,"drift-right":wr,"drift-up":kr,"drift-down":Mr,"drift-zoom":Cr,"drift-random":Fr};import{Fragment as fo,jsx as j,jsxs as Dr}from"react/jsx-runtime";var Br=({children:e,effect:t="fade",driftEffect:r="none",activeIndex:a,onSlideChange:o,autoPlay:n=!1,autoPlayInterval:i=5e3,duration:p,loop:s=!0,pauseOnHover:l=!0,className:c="",style:d={},showNavigation:u=!0,showIndicators:g=!0,enableKeyboard:C=!0,enableSwipe:w=!0})=>{let h=Sr(()=>Pr.Children.toArray(e).map(x=>{if(Pr.isValidElement(x)&&x.type?.displayName==="VfxSlideItem"){let f=x.props;return{content:f.children,effect:f.effect,driftEffect:f.driftEffect,duration:f.duration,interval:f.interval,className:f.className,style:f.style}}return{content:x}}),[e]),E=h.length,[z,K]=W(0),[m,y]=W(null),[F,I]=W(!1),[R,L]=W(!1),[Re,Lr]=W(""),zr=Tr(null),V=Tr(null),T=a!==void 0?a:z,q=_(x=>{let f=h[x];return{effect:f?.effect||t,driftEffect:f?.driftEffect||r,duration:f?.duration||p,interval:f?.interval||i}},[h,t,r,p,i]),Y=q(T);re(()=>{if(Y.driftEffect==="drift-random"){let f=["drift-left","drift-right","drift-up","drift-down","drift-zoom"],S=f[Math.floor(Math.random()*f.length)];console.log(`[VfxSlide] \uC2AC\uB77C\uC774\uB4DC ${T}: drift-random \u2192 ${S}`),Lr(S)}},[Y.driftEffect,T]);let Ir=Sr(()=>U[Y.effect]||U.fade,[Y.effect]),oe=Y.duration||Ir.defaultDuration;re(()=>{let x=new Set([t]),f=new Set;r!=="none"&&f.add(r),h.forEach(k=>{k.effect&&x.add(k.effect),k.driftEffect&&k.driftEffect!=="none"&&f.add(k.driftEffect)}),x.forEach(k=>{let B=`vfx-slide-${k}`;if(!document.getElementById(B)){let b=U[k];if(b){let D=document.createElement("style");D.id=B,D.textContent=`
1945
+ ${b.enterKeyframes}
1946
+ ${b.exitKeyframes}
1947
+ ${b.enterClass}
1948
+ ${b.exitClass}
1949
+ `,document.head.appendChild(D)}}}),f.forEach(k=>{if(k==="drift-random")["drift-left","drift-right","drift-up","drift-down","drift-zoom"].forEach(b=>{let D=te[b],N=`vfx-slide-drift-${b}`;if(D&&!document.getElementById(N)){let ae=document.createElement("style");ae.id=N,ae.textContent=`
1950
+ ${D.enterKeyframes}
1951
+ ${D.enterClass}
1952
+ `,document.head.appendChild(ae)}});else{let B=te[k],b=`vfx-slide-drift-${k}`;if(B&&!document.getElementById(b)){let D=document.createElement("style");D.id=b,D.textContent=`
1953
+ ${B.enterKeyframes}
1954
+ ${B.enterClass}
1955
+ `,document.head.appendChild(D)}}});let S="vfx-slide-common";if(!document.getElementById(S)){let k=document.createElement("style");k.id=S,k.textContent=`
1952
1956
  .vfx-slide-container {
1953
1957
  position: relative;
1954
1958
  overflow: hidden;
@@ -2045,5 +2049,5 @@ import{useState as ze,useEffect as Ie}from"react";var ne=(e,t,r)=>{let[a,o]=ze("
2045
2049
  background: white;
2046
2050
  transform: scale(1.2);
2047
2051
  }
2048
- `,document.head.appendChild(E)}},[t,r,w]);let V=z(d=>{if(D||d===F)return;let i=d;if(f)d<0&&(i=k-1),d>=k&&(i=0);else if(d<0||d>=k)return;b(F),Y(!0),a===void 0&&j(i),o?.(i),setTimeout(()=>{Y(!1),b(null)},oe)},[F,k,f,a,o,oe,D]),I=z(()=>{V(F+1)},[F,V]),Z=z(()=>{V(F-1)},[F,V]);re(()=>{if(!n||R)return;let d=setInterval(()=>{I()},s);return()=>clearInterval(d)},[n,s,R,I]),re(()=>{if(!B)return;let d=i=>{i.key==="ArrowRight"?I():i.key==="ArrowLeft"&&Z()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[B,I,Z]);let Br=z(d=>{P&&(H.current={x:d.touches[0].clientX,y:d.touches[0].clientY})},[P]),Rr=z(d=>{if(!P||!H.current)return;let i=d.changedTouches[0].clientX-H.current.x,C=d.changedTouches[0].clientY-H.current.y;Math.abs(i)>Math.abs(C)&&Math.abs(i)>50&&(i>0?Z():I()),H.current=null},[P,I,Z]),Lr=z(()=>{l&&n&&G(!0)},[l,n]),zr=z(()=>{l&&n&&G(!1)},[l,n]),Ir=d=>`vfx-slide-${q(d).effect}-enter`,Le=d=>{let C=q(d).driftEffect;return C==="none"||!C?"":C==="drift-random"&&Re?`vfx-slide-${Re}-idle`:`vfx-slide-${C}-idle`};return Fr("div",{ref:Tr,className:`vfx-slide-container ${c}`,style:{...m,"--slide-duration":`${oe}ms`,"--slide-interval":`${A.interval}ms`},onMouseEnter:Lr,onMouseLeave:zr,onTouchStart:Br,onTouchEnd:Rr,children:[w.map((d,i)=>{let C=i===F,E=x!==null&&i===x,T=q(i),u="vfx-slide-item";d.className&&(u+=` ${d.className}`);let S={...d.style};if(E&&D&&(u+=" prev-slide",T.driftEffect!=="none"&&T.driftEffect)){let L=Le(i);L&&(u+=` ${L}`)}if(C){if(u+=" active",D)u+=` ${Ir(i)}`;else if(T.driftEffect!=="none"&&T.driftEffect){let L=Le(i);L&&(u+=` ${L}`)}}return W("div",{className:u,style:S,children:d.content},i)}),y&&k>1&&Fr(Wr,{children:[W("button",{className:"vfx-slide-nav prev",onClick:Z,disabled:!f&&F===0,"aria-label":"\uC774\uC804 \uC2AC\uB77C\uC774\uB4DC",children:"\u276E"}),W("button",{className:"vfx-slide-nav next",onClick:I,disabled:!f&&F===k-1,"aria-label":"\uB2E4\uC74C \uC2AC\uB77C\uC774\uB4DC",children:"\u276F"})]}),v&&k>1&&W("div",{className:"vfx-slide-indicators",children:w.map((d,i)=>W("button",{className:`vfx-slide-indicator ${i===F?"active":""}`,onClick:()=>V(i),"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${i+1}`},i))})]})};Cr.displayName="VfxSlide";var Ur=Cr;import{jsx as qr}from"react/jsx-runtime";var Pr=({children:e,className:t})=>qr("div",{className:`vfx-slide-item-content ${t||""}`,children:e});Pr.displayName="VfxSlideItem";var jr=Pr;export{Gr as VfxDiv,Zr as VfxParticle,Ur as VfxSlide,jr as VfxSlideItem,_r as VfxText,Kt as addBorderEffectStyles,Nr as addTextEffectStyles,te as driftEffectRegistry,O as slideEffectRegistry,ne as useTextEffect};
2052
+ `,document.head.appendChild(k)}},[t,r,h]);let O=_(x=>{if(F||x===T)return;let f=x;if(s)x<0&&(f=E-1),x>=E&&(f=0);else if(x<0||x>=E)return;y(T),I(!0),a===void 0&&K(f),o?.(f),setTimeout(()=>{I(!1),y(null)},oe)},[T,E,s,a,o,oe,F]),$=_(()=>{O(T+1)},[T,O]),Z=_(()=>{O(T-1)},[T,O]);re(()=>{if(!n||R)return;let x=setInterval(()=>{$()},i);return()=>clearInterval(x)},[n,i,R,$]),re(()=>{if(!C)return;let x=f=>{f.key==="ArrowRight"?$():f.key==="ArrowLeft"&&Z()};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[C,$,Z]);let Nr=_(x=>{w&&(V.current={x:x.touches[0].clientX,y:x.touches[0].clientY})},[w]),_r=_(x=>{if(!w||!V.current)return;let f=x.changedTouches[0].clientX-V.current.x,S=x.changedTouches[0].clientY-V.current.y;Math.abs(f)>Math.abs(S)&&Math.abs(f)>50&&(f>0?Z():$()),V.current=null},[w,$,Z]),$r=_(()=>{l&&n&&L(!0)},[l,n]),Ar=_(()=>{l&&n&&L(!1)},[l,n]),Xr=x=>`vfx-slide-${q(x).effect}-enter`,Le=x=>{let S=q(x).driftEffect;return S==="none"||!S?"":S==="drift-random"&&Re?`vfx-slide-${Re}-idle`:`vfx-slide-${S}-idle`};return Dr("div",{ref:zr,className:`vfx-slide-container ${c}`,style:{...d,"--slide-duration":`${oe}ms`,"--slide-interval":`${Y.interval}ms`},onMouseEnter:$r,onMouseLeave:Ar,onTouchStart:Nr,onTouchEnd:_r,children:[h.map((x,f)=>{let S=f===T,k=m!==null&&f===m,B=q(f),b="vfx-slide-item";x.className&&(b+=` ${x.className}`);let D={...x.style};if(k&&F&&(b+=" prev-slide",B.driftEffect!=="none"&&B.driftEffect)){let N=Le(f);N&&(b+=` ${N}`)}if(S){if(b+=" active",F)b+=` ${Xr(f)}`;else if(B.driftEffect!=="none"&&B.driftEffect){let N=Le(f);N&&(b+=` ${N}`)}}return j("div",{className:b,style:D,children:x.content},f)}),u&&E>1&&Dr(fo,{children:[j("button",{className:"vfx-slide-nav prev",onClick:Z,disabled:!s&&T===0,"aria-label":"\uC774\uC804 \uC2AC\uB77C\uC774\uB4DC",children:"\u276E"}),j("button",{className:"vfx-slide-nav next",onClick:$,disabled:!s&&T===E-1,"aria-label":"\uB2E4\uC74C \uC2AC\uB77C\uC774\uB4DC",children:"\u276F"})]}),g&&E>1&&j("div",{className:"vfx-slide-indicators",children:h.map((x,f)=>j("button",{className:`vfx-slide-indicator ${f===T?"active":""}`,onClick:()=>O(f),"aria-label":`\uC2AC\uB77C\uC774\uB4DC ${f+1}`},f))})]})};Br.displayName="VfxSlide";var so=Br;import{jsx as mo}from"react/jsx-runtime";var Rr=({children:e,className:t})=>mo("div",{className:`vfx-slide-item-content ${t||""}`,children:e});Rr.displayName="VfxSlideItem";var lo=Rr;export{ro as VfxDiv,no as VfxParticle,so as VfxSlide,lo as VfxSlideItem,Yr as VfxText,Wr as VfxTyping,Ot as addBorderEffectStyles,Kr as addTextEffectStyles,te as driftEffectRegistry,U as slideEffectRegistry,Zr as typingDuration,ne as useTextEffect};
2049
2053
  //# sourceMappingURL=index.esm.js.map