@readdy/anim 0.0.21 → 0.0.25

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 (102) hide show
  1. package/animations/button/confetti-button/index.js +1 -1
  2. package/animations/button/confetti-button/react.tsx +5 -3
  3. package/animations/card/magic-ui-border-beam/index.js +26 -0
  4. package/animations/card/magic-ui-border-beam/react.tsx +8 -0
  5. package/animations/card/magic-ui-border-beam/style.css +1 -0
  6. package/animations/header/blur-to-sharp-rise/index.js +14 -0
  7. package/animations/header/blur-to-sharp-rise/react.tsx +6 -0
  8. package/animations/header/blur-to-sharp-rise/style.css +1 -0
  9. package/animations/header/gradient-text/style.css +10 -4
  10. package/animations/header/shimmer-text/style.css +10 -4
  11. package/dist/button/3d-flip/react.js +3 -3
  12. package/dist/button/3d-flip.js +3 -3
  13. package/dist/button/blur-fade-in/react.js +1 -1
  14. package/dist/button/blur-fade-in.js +1 -1
  15. package/dist/button/border-beam/react.js +2 -2
  16. package/dist/button/border-beam.js +1 -1
  17. package/dist/button/bounce-elastic/react.js +1 -1
  18. package/dist/button/bounce-elastic.js +1 -1
  19. package/dist/button/bubble-button/react.js +2 -2
  20. package/dist/button/bubble-button.js +2 -2
  21. package/dist/button/confetti-button/react.js +6 -6
  22. package/dist/button/confetti-button.js +3 -3
  23. package/dist/button/glow-cta/react.js +3 -3
  24. package/dist/button/glow-cta.js +3 -3
  25. package/dist/button/magnetic-hover/react.js +3 -3
  26. package/dist/button/magnetic-hover.js +3 -3
  27. package/dist/button/pulse/react.js +1 -1
  28. package/dist/button/pulse.js +1 -1
  29. package/dist/button/rainbow-button/react.js +1 -1
  30. package/dist/button/rainbow-button.js +1 -1
  31. package/dist/button/shimmer-border/react.js +2 -2
  32. package/dist/button/shimmer-border.js +1 -1
  33. package/dist/button/sketch-button/react.js +2 -2
  34. package/dist/button/sketch-button.js +1 -1
  35. package/dist/card/blur-rise/react.js +1 -1
  36. package/dist/card/blur-rise.js +1 -1
  37. package/dist/card/bounce-in-bottom/react.js +1 -1
  38. package/dist/card/bounce-in-bottom.js +1 -1
  39. package/dist/card/card-fan-spread/react.js +2 -2
  40. package/dist/card/card-fan-spread.js +2 -2
  41. package/dist/card/float-idle/react.js +1 -1
  42. package/dist/card/float-idle.js +1 -1
  43. package/dist/card/image-magnifier/react.js +4 -4
  44. package/dist/card/image-magnifier.js +4 -4
  45. package/dist/card/image-zoom-rotate/react.js +3 -3
  46. package/dist/card/image-zoom-rotate.js +2 -2
  47. package/dist/card/pop-in-stack/react.js +2 -2
  48. package/dist/card/pop-in-stack.js +1 -1
  49. package/dist/card/reveal-from-top/react.js +1 -1
  50. package/dist/card/reveal-from-top.js +1 -1
  51. package/dist/card/rgb-split-glitch/react.js +2 -2
  52. package/dist/card/rgb-split-glitch.js +1 -1
  53. package/dist/card/tilted-card/react.js +3 -3
  54. package/dist/card/tilted-card.js +3 -3
  55. package/dist/chunks/{text-split-D02jltVh.js → text-split-Bmp_5COC.js} +1 -1
  56. package/dist/chunks/{text-split-frOR4UpH.js → text-split-C_eLSddh.js} +1 -1
  57. package/dist/full.css +1 -1
  58. package/dist/full.js +311 -249
  59. package/dist/header/anime-splittext/react.js +2 -2
  60. package/dist/header/anime-splittext.js +1 -1
  61. package/dist/header/bounce-in-down/react.js +3 -3
  62. package/dist/header/bounce-in-down.js +3 -3
  63. package/dist/header/fly-in-chars/react.js +3 -3
  64. package/dist/header/fly-in-chars.js +3 -3
  65. package/dist/header/gradient-text/react.js +1 -1
  66. package/dist/header/gradient-text.js +1 -1
  67. package/dist/header/letter-bounce/react.js +3 -3
  68. package/dist/header/letter-bounce.js +2 -2
  69. package/dist/header/roll-in/react.js +3 -3
  70. package/dist/header/roll-in.js +3 -3
  71. package/dist/header/shimmer-text/react.js +2 -2
  72. package/dist/header/shimmer-text.js +1 -1
  73. package/dist/header/shuffle/react.js +3 -3
  74. package/dist/header/shuffle.js +3 -3
  75. package/dist/header/split-text/react.js +3 -3
  76. package/dist/header/split-text.js +3 -3
  77. package/dist/header/text-type/react.js +2 -2
  78. package/dist/header/text-type.js +2 -2
  79. package/dist/header/word-curtain-reveal/react.js +2 -2
  80. package/dist/header/word-curtain-reveal.js +2 -2
  81. package/dist/meta.json +2 -2
  82. package/dist/metadata.json +71 -107
  83. package/dist/react.css +1 -1
  84. package/dist/types/animations/button/confetti-button/react.d.ts +2 -1
  85. package/dist/types/animations/card/magic-ui-border-beam/index.d.ts +3 -0
  86. package/dist/types/animations/card/magic-ui-border-beam/react.d.ts +5 -0
  87. package/dist/types/animations/header/blur-to-sharp-rise/index.d.ts +3 -0
  88. package/dist/types/animations/header/blur-to-sharp-rise/react.d.ts +4 -0
  89. package/dist/types/react-barrel.d.ts +2 -0
  90. package/dist/types/scripts/bundle-all.d.ts +1 -172
  91. package/dist/types/stories/blur-to-sharp-rise-header.stories.d.ts +4 -4
  92. package/dist/types/stories/magic-ui-border-beam-card.stories.d.ts +4 -4
  93. package/package.json +7 -1
  94. package/react-barrel.js +2 -0
  95. /package/dist/chunks/{constants-EnH6-Pz4.js → constants-BupFX_Dk.js} +0 -0
  96. /package/dist/chunks/{constants-ZTHic1pf.js → constants-CVRGZ96T.js} +0 -0
  97. /package/dist/chunks/{pointer-follow-B3RFnn_q.js → pointer-follow-Buww6tad.js} +0 -0
  98. /package/dist/chunks/{pointer-follow-BETANySn.js → pointer-follow-DfG8HmLQ.js} +0 -0
  99. /package/dist/chunks/{reduced-motion-BpQYuEzK.js → reduced-motion-B30dZ881.js} +0 -0
  100. /package/dist/chunks/{reduced-motion-HX79Ac8G.js → reduced-motion-BzMJn11e.js} +0 -0
  101. /package/dist/chunks/{resolve-card-media-Cj3V_oms.js → resolve-card-media-BtaUKaDe.js} +0 -0
  102. /package/dist/chunks/{resolve-card-media-DBIU-duL.js → resolve-card-media-v4wxjviw.js} +0 -0
package/dist/full.js CHANGED
@@ -257,12 +257,12 @@
257
257
  }
258
258
  }
259
259
 
260
- const ANIMATION_ID$x = buildAnimId('letter-bounce');
260
+ const ANIMATION_ID$z = buildAnimId('letter-bounce');
261
261
 
262
262
  const CSS_CLASS$x = buildAnimClass('letter-bounce');
263
263
  const CHAR_CLASS$6 = buildAnimClass('letter-bounce-char');
264
264
 
265
- function init$x(el, options = {}) {
265
+ function init$z(el, options = {}) {
266
266
  if (!el.classList.contains(CSS_CLASS$x)) {
267
267
  el.classList.add(CSS_CLASS$x);
268
268
  }
@@ -277,7 +277,7 @@
277
277
  });
278
278
  }
279
279
 
280
- function destroy$x(el) {
280
+ function destroy$z(el) {
281
281
  el.classList.remove(CSS_CLASS$x);
282
282
  el.style.removeProperty('--readdy-anim-letter-bounce-duration');
283
283
  el.style.removeProperty('--readdy-anim-letter-bounce-amplitude');
@@ -289,30 +289,30 @@
289
289
 
290
290
  var letterBounce = /*#__PURE__*/Object.freeze({
291
291
  __proto__: null,
292
- ANIMATION_ID: ANIMATION_ID$x,
293
- destroy: destroy$x,
294
- init: init$x
292
+ ANIMATION_ID: ANIMATION_ID$z,
293
+ destroy: destroy$z,
294
+ init: init$z
295
295
  });
296
296
 
297
- const ANIMATION_ID$w = buildAnimId('shimmer-text');
297
+ const ANIMATION_ID$y = buildAnimId('shimmer-text');
298
298
 
299
299
  const CSS_CLASS$w = buildAnimClass('shimmer-text');
300
300
 
301
- function init$w(el) {
301
+ function init$y(el) {
302
302
  if (!el.classList.contains(CSS_CLASS$w)) {
303
303
  el.classList.add(CSS_CLASS$w);
304
304
  }
305
305
  }
306
306
 
307
- function destroy$w(el) {
307
+ function destroy$y(el) {
308
308
  el.classList.remove(CSS_CLASS$w);
309
309
  }
310
310
 
311
311
  var shimmerText = /*#__PURE__*/Object.freeze({
312
312
  __proto__: null,
313
- ANIMATION_ID: ANIMATION_ID$w,
314
- destroy: destroy$w,
315
- init: init$w
313
+ ANIMATION_ID: ANIMATION_ID$y,
314
+ destroy: destroy$y,
315
+ init: init$y
316
316
  });
317
317
 
318
318
  /**
@@ -331,7 +331,7 @@
331
331
  window.matchMedia('(prefers-reduced-motion: reduce)').matches
332
332
  }
333
333
 
334
- const ANIMATION_ID$v = buildAnimId('text-type');
334
+ const ANIMATION_ID$x = buildAnimId('text-type');
335
335
 
336
336
  const CSS_CLASS$v = buildAnimClass('text-type');
337
337
  const CONTENT_CLASS = buildAnimClass('text-type-content');
@@ -503,8 +503,8 @@
503
503
  schedule(state, typeNext, typingSpeed);
504
504
  }
505
505
 
506
- function init$v(el, options = {}) {
507
- destroy$v(el);
506
+ function init$x(el, options = {}) {
507
+ destroy$x(el);
508
508
 
509
509
  if (!el.dataset.originalText) {
510
510
  el.dataset.originalText = el.innerHTML;
@@ -567,7 +567,7 @@
567
567
  typePhrase(state, 0);
568
568
  }
569
569
 
570
- function destroy$v(el) {
570
+ function destroy$x(el) {
571
571
  const state = stateMap$9.get(el);
572
572
  if (state) {
573
573
  clearState$1(state);
@@ -597,33 +597,33 @@
597
597
 
598
598
  var textType = /*#__PURE__*/Object.freeze({
599
599
  __proto__: null,
600
- ANIMATION_ID: ANIMATION_ID$v,
601
- destroy: destroy$v,
602
- init: init$v
600
+ ANIMATION_ID: ANIMATION_ID$x,
601
+ destroy: destroy$x,
602
+ init: init$x
603
603
  });
604
604
 
605
- const ANIMATION_ID$u = buildAnimId('gradient-text');
605
+ const ANIMATION_ID$w = buildAnimId('gradient-text');
606
606
 
607
607
  const CSS_CLASS$u = buildAnimClass('gradient-text');
608
608
 
609
- function init$u(el, options = {}) {
609
+ function init$w(el, options = {}) {
610
610
  if (!el.classList.contains(CSS_CLASS$u)) {
611
611
  el.classList.add(CSS_CLASS$u);
612
612
  }
613
613
  }
614
614
 
615
- function destroy$u(el) {
615
+ function destroy$w(el) {
616
616
  el.classList.remove(CSS_CLASS$u);
617
617
  }
618
618
 
619
619
  var gradientText = /*#__PURE__*/Object.freeze({
620
620
  __proto__: null,
621
- ANIMATION_ID: ANIMATION_ID$u,
622
- destroy: destroy$u,
623
- init: init$u
621
+ ANIMATION_ID: ANIMATION_ID$w,
622
+ destroy: destroy$w,
623
+ init: init$w
624
624
  });
625
625
 
626
- const ANIMATION_ID$t = buildAnimId('fly-in-chars');
626
+ const ANIMATION_ID$v = buildAnimId('fly-in-chars');
627
627
 
628
628
  const CSS_CLASS$t = buildAnimClass('fly-in-chars');
629
629
  const CHAR_CLASS$5 = buildAnimClass('fly-in-char');
@@ -632,7 +632,7 @@
632
632
  return Math.round(min + Math.random() * (max - min))
633
633
  }
634
634
 
635
- function init$t(el, options = {}) {
635
+ function init$v(el, options = {}) {
636
636
  if (el.classList.contains(CSS_CLASS$t)) {
637
637
  return
638
638
  }
@@ -657,7 +657,7 @@
657
657
  }
658
658
  }
659
659
 
660
- function destroy$t(el) {
660
+ function destroy$v(el) {
661
661
  el.classList.remove(CSS_CLASS$t);
662
662
  if (el.dataset.originalText) {
663
663
  el.innerHTML = el.dataset.originalText;
@@ -667,33 +667,50 @@
667
667
 
668
668
  var flyInChars = /*#__PURE__*/Object.freeze({
669
669
  __proto__: null,
670
- ANIMATION_ID: ANIMATION_ID$t,
671
- destroy: destroy$t,
672
- init: init$t
670
+ ANIMATION_ID: ANIMATION_ID$v,
671
+ destroy: destroy$v,
672
+ init: init$v
673
673
  });
674
674
 
675
- const ANIMATION_ID$s = buildAnimId('blur-rise');
675
+ const ANIMATION_ID$u = buildAnimId('blur-rise');
676
676
 
677
677
  const CSS_CLASS$s = buildAnimClass('blur-rise');
678
678
 
679
- function init$s(el, options = {}) {
679
+ function init$u(el, options = {}) {
680
680
  if (!el.classList.contains(CSS_CLASS$s)) {
681
681
  el.classList.add(CSS_CLASS$s);
682
682
  }
683
683
  }
684
684
 
685
- function destroy$s(el) {
685
+ function destroy$u(el) {
686
686
  el.classList.remove(CSS_CLASS$s);
687
687
  }
688
688
 
689
689
  var blurRise = /*#__PURE__*/Object.freeze({
690
690
  __proto__: null,
691
- ANIMATION_ID: ANIMATION_ID$s,
692
- destroy: destroy$s,
693
- init: init$s
691
+ ANIMATION_ID: ANIMATION_ID$u,
692
+ destroy: destroy$u,
693
+ init: init$u
694
+ });
695
+
696
+ const ANIMATION_ID$t = buildAnimId('blur-to-sharp-rise');
697
+
698
+ function init$t(el, options = {}) {
699
+ init$u(el, options);
700
+ }
701
+
702
+ function destroy$t(el) {
703
+ destroy$u(el);
704
+ }
705
+
706
+ var blurToSharpRise = /*#__PURE__*/Object.freeze({
707
+ __proto__: null,
708
+ ANIMATION_ID: ANIMATION_ID$t,
709
+ destroy: destroy$t,
710
+ init: init$t
694
711
  });
695
712
 
696
- const ANIMATION_ID$r = buildAnimId('split-text');
713
+ const ANIMATION_ID$s = buildAnimId('split-text');
697
714
 
698
715
  const CSS_CLASS$r = buildAnimClass('split-text');
699
716
  const VISIBLE_CLASS = 'is-visible';
@@ -706,7 +723,7 @@
706
723
  }
707
724
  }
708
725
 
709
- function init$r(el, options = {}) {
726
+ function init$s(el, options = {}) {
710
727
  if (el.classList.contains(CSS_CLASS$r)) {
711
728
  return
712
729
  }
@@ -747,7 +764,7 @@
747
764
  observerMap.set(el, observer);
748
765
  }
749
766
 
750
- function destroy$r(el) {
767
+ function destroy$s(el) {
751
768
  const observer = observerMap.get(el);
752
769
  if (observer) {
753
770
  observer.disconnect();
@@ -763,12 +780,12 @@
763
780
 
764
781
  var splitText = /*#__PURE__*/Object.freeze({
765
782
  __proto__: null,
766
- ANIMATION_ID: ANIMATION_ID$r,
767
- destroy: destroy$r,
768
- init: init$r
783
+ ANIMATION_ID: ANIMATION_ID$s,
784
+ destroy: destroy$s,
785
+ init: init$s
769
786
  });
770
787
 
771
- const ANIMATION_ID$q = buildAnimId('shuffle');
788
+ const ANIMATION_ID$r = buildAnimId('shuffle');
772
789
 
773
790
  const CSS_CLASS$q = buildAnimClass('shuffle');
774
791
  const CHAR_CLASS$3 = buildAnimClass('shuffle-char');
@@ -825,7 +842,7 @@
825
842
  });
826
843
  }
827
844
 
828
- function init$q(el, options = {}) {
845
+ function init$r(el, options = {}) {
829
846
  if (el.classList.contains(CSS_CLASS$q)) {
830
847
  return
831
848
  }
@@ -863,7 +880,7 @@
863
880
  runShuffle(el, options);
864
881
  }
865
882
 
866
- function destroy$q(el) {
883
+ function destroy$r(el) {
867
884
  const state = stateMap$8.get(el);
868
885
  if (state) {
869
886
  clearState(state);
@@ -884,17 +901,17 @@
884
901
 
885
902
  var shuffle = /*#__PURE__*/Object.freeze({
886
903
  __proto__: null,
887
- ANIMATION_ID: ANIMATION_ID$q,
888
- destroy: destroy$q,
889
- init: init$q
904
+ ANIMATION_ID: ANIMATION_ID$r,
905
+ destroy: destroy$r,
906
+ init: init$r
890
907
  });
891
908
 
892
- const ANIMATION_ID$p = buildAnimId('roll-in');
909
+ const ANIMATION_ID$q = buildAnimId('roll-in');
893
910
 
894
911
  const CSS_CLASS$p = buildAnimClass('roll-in');
895
912
  const CHAR_CLASS$2 = buildAnimClass('roll-in-char');
896
913
 
897
- function init$p(el, options = {}) {
914
+ function init$q(el, options = {}) {
898
915
  if (el.classList.contains(CSS_CLASS$p)) {
899
916
  return
900
917
  }
@@ -912,7 +929,7 @@
912
929
  });
913
930
  }
914
931
 
915
- function destroy$p(el) {
932
+ function destroy$q(el) {
916
933
  el.classList.remove(CSS_CLASS$p);
917
934
  if (el.dataset.originalText) {
918
935
  el.innerHTML = el.dataset.originalText;
@@ -922,12 +939,12 @@
922
939
 
923
940
  var rollIn = /*#__PURE__*/Object.freeze({
924
941
  __proto__: null,
925
- ANIMATION_ID: ANIMATION_ID$p,
926
- destroy: destroy$p,
927
- init: init$p
942
+ ANIMATION_ID: ANIMATION_ID$q,
943
+ destroy: destroy$q,
944
+ init: init$q
928
945
  });
929
946
 
930
- const ANIMATION_ID$o = buildAnimId('anime-splittext');
947
+ const ANIMATION_ID$p = buildAnimId('anime-splittext');
931
948
 
932
949
  const CSS_CLASS$o = buildAnimClass('anime-splittext');
933
950
  const WORD_CLASS$1 = buildAnimClass('anime-word');
@@ -1013,8 +1030,8 @@
1013
1030
  }
1014
1031
  }
1015
1032
 
1016
- function init$o(el, options = {}) {
1017
- destroy$o(el);
1033
+ function init$p(el, options = {}) {
1034
+ destroy$p(el);
1018
1035
 
1019
1036
  if (!el.classList.contains(CSS_CLASS$o)) {
1020
1037
  el.classList.add(CSS_CLASS$o);
@@ -1024,7 +1041,7 @@
1024
1041
  splitWords$1(el, options);
1025
1042
  }
1026
1043
 
1027
- function destroy$o(el) {
1044
+ function destroy$p(el) {
1028
1045
  el.classList.remove(CSS_CLASS$o);
1029
1046
  el.style.removeProperty('--readdy-anim-anime-word-duration');
1030
1047
  if (el.dataset.originalText) {
@@ -1035,12 +1052,12 @@
1035
1052
 
1036
1053
  var animeSplittext = /*#__PURE__*/Object.freeze({
1037
1054
  __proto__: null,
1038
- ANIMATION_ID: ANIMATION_ID$o,
1039
- destroy: destroy$o,
1040
- init: init$o
1055
+ ANIMATION_ID: ANIMATION_ID$p,
1056
+ destroy: destroy$p,
1057
+ init: init$p
1041
1058
  });
1042
1059
 
1043
- const ANIMATION_ID$n = buildAnimId('word-curtain-reveal');
1060
+ const ANIMATION_ID$o = buildAnimId('word-curtain-reveal');
1044
1061
 
1045
1062
  const CSS_CLASS$n = buildAnimClass('word-curtain-reveal');
1046
1063
  const WORD_CLASS = buildAnimClass('word-curtain-word');
@@ -1106,8 +1123,8 @@
1106
1123
  }
1107
1124
  }
1108
1125
 
1109
- function init$n(el, options = {}) {
1110
- destroy$n(el);
1126
+ function init$o(el, options = {}) {
1127
+ destroy$o(el);
1111
1128
 
1112
1129
  if (!el.classList.contains(CSS_CLASS$n)) {
1113
1130
  el.classList.add(CSS_CLASS$n);
@@ -1125,7 +1142,7 @@
1125
1142
  splitWords(el, options.stagger ?? 35);
1126
1143
  }
1127
1144
 
1128
- function destroy$n(el) {
1145
+ function destroy$o(el) {
1129
1146
  el.classList.remove(CSS_CLASS$n);
1130
1147
  el.style.removeProperty('--readdy-anim-word-curtain-duration');
1131
1148
  if (el.dataset.originalText) {
@@ -1136,17 +1153,17 @@
1136
1153
 
1137
1154
  var wordCurtainReveal = /*#__PURE__*/Object.freeze({
1138
1155
  __proto__: null,
1139
- ANIMATION_ID: ANIMATION_ID$n,
1140
- destroy: destroy$n,
1141
- init: init$n
1156
+ ANIMATION_ID: ANIMATION_ID$o,
1157
+ destroy: destroy$o,
1158
+ init: init$o
1142
1159
  });
1143
1160
 
1144
- const ANIMATION_ID$m = buildAnimId('bounce-in-down');
1161
+ const ANIMATION_ID$n = buildAnimId('bounce-in-down');
1145
1162
 
1146
1163
  const CSS_CLASS$m = buildAnimClass('bounce-in-down');
1147
1164
  const CHAR_CLASS = buildAnimClass('bounce-in-down-char');
1148
1165
 
1149
- function init$m(el, options = {}) {
1166
+ function init$n(el, options = {}) {
1150
1167
  if (el.classList.contains(CSS_CLASS$m)) {
1151
1168
  return
1152
1169
  }
@@ -1164,7 +1181,7 @@
1164
1181
  });
1165
1182
  }
1166
1183
 
1167
- function destroy$m(el) {
1184
+ function destroy$n(el) {
1168
1185
  el.classList.remove(CSS_CLASS$m);
1169
1186
  if (el.dataset.originalText) {
1170
1187
  el.innerHTML = el.dataset.originalText;
@@ -1174,9 +1191,9 @@
1174
1191
 
1175
1192
  var bounceInDown = /*#__PURE__*/Object.freeze({
1176
1193
  __proto__: null,
1177
- ANIMATION_ID: ANIMATION_ID$m,
1178
- destroy: destroy$m,
1179
- init: init$m
1194
+ ANIMATION_ID: ANIMATION_ID$n,
1195
+ destroy: destroy$n,
1196
+ init: init$n
1180
1197
  });
1181
1198
 
1182
1199
  function getPointerMetrics(target, event) {
@@ -1271,7 +1288,7 @@
1271
1288
  }
1272
1289
  }
1273
1290
 
1274
- const ANIMATION_ID$l = buildAnimId('magnetic-hover');
1291
+ const ANIMATION_ID$m = buildAnimId('magnetic-hover');
1275
1292
 
1276
1293
  const CSS_CLASS$l = buildAnimClass('magnetic-hover');
1277
1294
  const stateMap$7 = new WeakMap();
@@ -1282,8 +1299,8 @@
1282
1299
  el.style.setProperty('--readdy-anim-magnetic-scale', '1');
1283
1300
  }
1284
1301
 
1285
- function init$l(el, options = {}) {
1286
- destroy$l(el);
1302
+ function init$m(el, options = {}) {
1303
+ destroy$m(el);
1287
1304
 
1288
1305
  el.classList.add(CSS_CLASS$l);
1289
1306
  resetTransform(el);
@@ -1315,7 +1332,7 @@
1315
1332
  stateMap$7.set(el, { cleanup });
1316
1333
  }
1317
1334
 
1318
- function destroy$l(el) {
1335
+ function destroy$m(el) {
1319
1336
  const state = stateMap$7.get(el);
1320
1337
  if (state) {
1321
1338
  state.cleanup();
@@ -1330,12 +1347,12 @@
1330
1347
 
1331
1348
  var magneticHover = /*#__PURE__*/Object.freeze({
1332
1349
  __proto__: null,
1333
- ANIMATION_ID: ANIMATION_ID$l,
1334
- destroy: destroy$l,
1335
- init: init$l
1350
+ ANIMATION_ID: ANIMATION_ID$m,
1351
+ destroy: destroy$m,
1352
+ init: init$m
1336
1353
  });
1337
1354
 
1338
- const ANIMATION_ID$k = buildAnimId('border-beam');
1355
+ const ANIMATION_ID$l = buildAnimId('border-beam');
1339
1356
 
1340
1357
  const CSS_CLASS$k = buildAnimClass('border-beam');
1341
1358
  const LAYER_CLASS$1 = `${CSS_CLASS$k}__layer`;
@@ -1460,7 +1477,7 @@
1460
1477
  }
1461
1478
  }
1462
1479
 
1463
- function init$k(el, options = {}) {
1480
+ function init$l(el, options = {}) {
1464
1481
  if (!el.classList.contains(CSS_CLASS$k)) {
1465
1482
  el.classList.add(CSS_CLASS$k);
1466
1483
  }
@@ -1484,7 +1501,7 @@
1484
1501
  runAnimation(el);
1485
1502
  }
1486
1503
 
1487
- function destroy$k(el) {
1504
+ function destroy$l(el) {
1488
1505
  cancelAnimation(el);
1489
1506
 
1490
1507
  const state = el[STATE_KEY];
@@ -1502,16 +1519,16 @@
1502
1519
 
1503
1520
  var borderBeam = /*#__PURE__*/Object.freeze({
1504
1521
  __proto__: null,
1505
- ANIMATION_ID: ANIMATION_ID$k,
1506
- destroy: destroy$k,
1507
- init: init$k
1522
+ ANIMATION_ID: ANIMATION_ID$l,
1523
+ destroy: destroy$l,
1524
+ init: init$l
1508
1525
  });
1509
1526
 
1510
- const ANIMATION_ID$j = buildAnimId('shimmer-border');
1527
+ const ANIMATION_ID$k = buildAnimId('shimmer-border');
1511
1528
 
1512
1529
  const CSS_CLASS$j = buildAnimClass('shimmer-border');
1513
1530
 
1514
- function init$j(el, options = {}) {
1531
+ function init$k(el, options = {}) {
1515
1532
  if (!el.classList.contains(CSS_CLASS$j)) {
1516
1533
  el.classList.add(CSS_CLASS$j);
1517
1534
  }
@@ -1521,7 +1538,7 @@
1521
1538
  el.style.setProperty('--readdy-anim-shimmer-border-opacity', `${options.opacity ?? 0.88}`);
1522
1539
  }
1523
1540
 
1524
- function destroy$j(el) {
1541
+ function destroy$k(el) {
1525
1542
  el.classList.remove(CSS_CLASS$j);
1526
1543
  el.style.removeProperty('--readdy-anim-shimmer-border-duration');
1527
1544
  el.style.removeProperty('--readdy-anim-shimmer-border-width');
@@ -1530,54 +1547,54 @@
1530
1547
 
1531
1548
  var shimmerBorder = /*#__PURE__*/Object.freeze({
1532
1549
  __proto__: null,
1533
- ANIMATION_ID: ANIMATION_ID$j,
1534
- destroy: destroy$j,
1535
- init: init$j
1550
+ ANIMATION_ID: ANIMATION_ID$k,
1551
+ destroy: destroy$k,
1552
+ init: init$k
1536
1553
  });
1537
1554
 
1538
- const ANIMATION_ID$i = buildAnimId('rainbow-button');
1555
+ const ANIMATION_ID$j = buildAnimId('rainbow-button');
1539
1556
 
1540
1557
  const CSS_CLASS$i = buildAnimClass('rainbow-button');
1541
1558
 
1542
- function init$i(el, options = {}) {
1559
+ function init$j(el, options = {}) {
1543
1560
  if (!el.classList.contains(CSS_CLASS$i)) {
1544
1561
  el.classList.add(CSS_CLASS$i);
1545
1562
  }
1546
1563
  }
1547
1564
 
1548
- function destroy$i(el) {
1565
+ function destroy$j(el) {
1549
1566
  el.classList.remove(CSS_CLASS$i);
1550
1567
  }
1551
1568
 
1552
1569
  var rainbowButton = /*#__PURE__*/Object.freeze({
1553
1570
  __proto__: null,
1554
- ANIMATION_ID: ANIMATION_ID$i,
1555
- destroy: destroy$i,
1556
- init: init$i
1571
+ ANIMATION_ID: ANIMATION_ID$j,
1572
+ destroy: destroy$j,
1573
+ init: init$j
1557
1574
  });
1558
1575
 
1559
- const ANIMATION_ID$h = buildAnimId('sketch-button');
1576
+ const ANIMATION_ID$i = buildAnimId('sketch-button');
1560
1577
 
1561
1578
  const CSS_CLASS$h = buildAnimClass('sketch-button');
1562
1579
 
1563
- function init$h(el) {
1580
+ function init$i(el) {
1564
1581
  if (!el.classList.contains(CSS_CLASS$h)) {
1565
1582
  el.classList.add(CSS_CLASS$h);
1566
1583
  }
1567
1584
  }
1568
1585
 
1569
- function destroy$h(el) {
1586
+ function destroy$i(el) {
1570
1587
  el.classList.remove(CSS_CLASS$h);
1571
1588
  }
1572
1589
 
1573
1590
  var sketchButton = /*#__PURE__*/Object.freeze({
1574
1591
  __proto__: null,
1575
- ANIMATION_ID: ANIMATION_ID$h,
1576
- destroy: destroy$h,
1577
- init: init$h
1592
+ ANIMATION_ID: ANIMATION_ID$i,
1593
+ destroy: destroy$i,
1594
+ init: init$i
1578
1595
  });
1579
1596
 
1580
- const ANIMATION_ID$g = buildAnimId('confetti-button');
1597
+ const ANIMATION_ID$h = buildAnimId('confetti-button');
1581
1598
 
1582
1599
  const CSS_CLASS$g = buildAnimClass('confetti-button');
1583
1600
  const LAYER_CLASS = buildAnimClass('confetti-layer');
@@ -1608,13 +1625,13 @@
1608
1625
  }, 1100)
1609
1626
  }
1610
1627
 
1611
- function init$g(el, options = {}) {
1612
- destroy$g(el);
1628
+ function init$h(el, options = {}) {
1629
+ destroy$h(el);
1613
1630
 
1614
1631
  el.classList.add(CSS_CLASS$g);
1615
1632
 
1616
1633
  const onClick = () => {
1617
- if (prefersReducedMotion()) {
1634
+ if (options.respectReducedMotion !== false && prefersReducedMotion()) {
1618
1635
  return
1619
1636
  }
1620
1637
  const timeoutId = createBurst(el, options);
@@ -1628,7 +1645,7 @@
1628
1645
  stateMap$6.set(el, { onClick, timeoutIds: [] });
1629
1646
  }
1630
1647
 
1631
- function destroy$g(el) {
1648
+ function destroy$h(el) {
1632
1649
  const state = stateMap$6.get(el);
1633
1650
  if (state) {
1634
1651
  el.removeEventListener('click', state.onClick);
@@ -1642,12 +1659,12 @@
1642
1659
 
1643
1660
  var confettiButton = /*#__PURE__*/Object.freeze({
1644
1661
  __proto__: null,
1645
- ANIMATION_ID: ANIMATION_ID$g,
1646
- destroy: destroy$g,
1647
- init: init$g
1662
+ ANIMATION_ID: ANIMATION_ID$h,
1663
+ destroy: destroy$h,
1664
+ init: init$h
1648
1665
  });
1649
1666
 
1650
- const ANIMATION_ID$f = buildAnimId('glow-cta');
1667
+ const ANIMATION_ID$g = buildAnimId('glow-cta');
1651
1668
 
1652
1669
  const CSS_CLASS$f = buildAnimClass('glow-cta');
1653
1670
  const ACTIVE_CLASS$1 = buildAnimClass('glow-cta-active');
@@ -1655,7 +1672,7 @@
1655
1672
  const GLOW_X_VAR = '--readdy-anim-glow-cta-x';
1656
1673
  const GLOW_Y_VAR = '--readdy-anim-glow-cta-y';
1657
1674
 
1658
- function init$f(el, options = {}) {
1675
+ function init$g(el, options = {}) {
1659
1676
  if (cleanups.has(el)) return
1660
1677
 
1661
1678
  el.classList.add(CSS_CLASS$f);
@@ -1692,7 +1709,7 @@
1692
1709
  cleanups.set(el, cleanup);
1693
1710
  }
1694
1711
 
1695
- function destroy$f(el) {
1712
+ function destroy$g(el) {
1696
1713
  cleanups.get(el)?.();
1697
1714
  cleanups.delete(el);
1698
1715
 
@@ -1709,12 +1726,12 @@
1709
1726
 
1710
1727
  var glowCta = /*#__PURE__*/Object.freeze({
1711
1728
  __proto__: null,
1712
- ANIMATION_ID: ANIMATION_ID$f,
1713
- destroy: destroy$f,
1714
- init: init$f
1729
+ ANIMATION_ID: ANIMATION_ID$g,
1730
+ destroy: destroy$g,
1731
+ init: init$g
1715
1732
  });
1716
1733
 
1717
- const ANIMATION_ID$e = buildAnimId('bubble-button');
1734
+ const ANIMATION_ID$f = buildAnimId('bubble-button');
1718
1735
 
1719
1736
  const CSS_CLASS$e = buildAnimClass('bubble-button');
1720
1737
  const ACTIVE_CLASS = buildAnimClass('bubble-button-active');
@@ -1967,8 +1984,8 @@
1967
1984
  });
1968
1985
  }
1969
1986
 
1970
- function init$e(el) {
1971
- destroy$e(el);
1987
+ function init$f(el) {
1988
+ destroy$f(el);
1972
1989
  el.classList.add(CSS_CLASS$e);
1973
1990
 
1974
1991
  if (prefersReducedMotion()) {
@@ -2001,7 +2018,7 @@
2001
2018
  stateMap$5.set(el, state);
2002
2019
  }
2003
2020
 
2004
- function destroy$e(el) {
2021
+ function destroy$f(el) {
2005
2022
  const state = stateMap$5.get(el);
2006
2023
  if (state) {
2007
2024
  state.container.removeEventListener('mouseenter', state.onEnter);
@@ -2030,75 +2047,75 @@
2030
2047
 
2031
2048
  var bubbleButton = /*#__PURE__*/Object.freeze({
2032
2049
  __proto__: null,
2033
- ANIMATION_ID: ANIMATION_ID$e,
2034
- destroy: destroy$e,
2035
- init: init$e
2050
+ ANIMATION_ID: ANIMATION_ID$f,
2051
+ destroy: destroy$f,
2052
+ init: init$f
2036
2053
  });
2037
2054
 
2038
- const ANIMATION_ID$d = buildAnimId('bounce-elastic');
2055
+ const ANIMATION_ID$e = buildAnimId('bounce-elastic');
2039
2056
 
2040
2057
  const CSS_CLASS$d = buildAnimClass('bounce-elastic');
2041
2058
 
2042
- function init$d(el, options = {}) {
2059
+ function init$e(el, options = {}) {
2043
2060
  if (!el.classList.contains(CSS_CLASS$d)) {
2044
2061
  el.classList.add(CSS_CLASS$d);
2045
2062
  }
2046
2063
  }
2047
2064
 
2048
- function destroy$d(el) {
2065
+ function destroy$e(el) {
2049
2066
  el.classList.remove(CSS_CLASS$d);
2050
2067
  }
2051
2068
 
2052
2069
  var bounceElastic = /*#__PURE__*/Object.freeze({
2053
2070
  __proto__: null,
2054
- ANIMATION_ID: ANIMATION_ID$d,
2055
- destroy: destroy$d,
2056
- init: init$d
2071
+ ANIMATION_ID: ANIMATION_ID$e,
2072
+ destroy: destroy$e,
2073
+ init: init$e
2057
2074
  });
2058
2075
 
2059
- const ANIMATION_ID$c = buildAnimId('pulse');
2076
+ const ANIMATION_ID$d = buildAnimId('pulse');
2060
2077
 
2061
2078
  const CSS_CLASS$c = buildAnimClass('pulse');
2062
2079
 
2063
- function init$c(el, options = {}) {
2080
+ function init$d(el, options = {}) {
2064
2081
  if (!el.classList.contains(CSS_CLASS$c)) {
2065
2082
  el.classList.add(CSS_CLASS$c);
2066
2083
  }
2067
2084
  }
2068
2085
 
2069
- function destroy$c(el) {
2086
+ function destroy$d(el) {
2070
2087
  el.classList.remove(CSS_CLASS$c);
2071
2088
  }
2072
2089
 
2073
2090
  var pulse = /*#__PURE__*/Object.freeze({
2074
2091
  __proto__: null,
2075
- ANIMATION_ID: ANIMATION_ID$c,
2076
- destroy: destroy$c,
2077
- init: init$c
2092
+ ANIMATION_ID: ANIMATION_ID$d,
2093
+ destroy: destroy$d,
2094
+ init: init$d
2078
2095
  });
2079
2096
 
2080
- const ANIMATION_ID$b = buildAnimId('blur-fade-in');
2097
+ const ANIMATION_ID$c = buildAnimId('blur-fade-in');
2081
2098
 
2082
2099
  const CSS_CLASS$b = buildAnimClass('blur-fade-in');
2083
2100
 
2084
- function init$b(el, options = {}) {
2101
+ function init$c(el, options = {}) {
2085
2102
  if (!el.classList.contains(CSS_CLASS$b)) {
2086
2103
  el.classList.add(CSS_CLASS$b);
2087
2104
  }
2088
2105
  }
2089
2106
 
2090
- function destroy$b(el) {
2107
+ function destroy$c(el) {
2091
2108
  el.classList.remove(CSS_CLASS$b);
2092
2109
  }
2093
2110
 
2094
2111
  var blurFadeIn = /*#__PURE__*/Object.freeze({
2095
2112
  __proto__: null,
2096
- ANIMATION_ID: ANIMATION_ID$b,
2097
- destroy: destroy$b,
2098
- init: init$b
2113
+ ANIMATION_ID: ANIMATION_ID$c,
2114
+ destroy: destroy$c,
2115
+ init: init$c
2099
2116
  });
2100
2117
 
2101
- const ANIMATION_ID$a = buildAnimId('3d-flip');
2118
+ const ANIMATION_ID$b = buildAnimId('3d-flip');
2102
2119
 
2103
2120
  const CSS_CLASS$a = buildAnimClass('3d-flip');
2104
2121
  const stateMap$4 = new WeakMap();
@@ -2110,8 +2127,8 @@
2110
2127
  el.style.setProperty('--readdy-anim-3d-translate-y', '0px');
2111
2128
  }
2112
2129
 
2113
- function init$a(el, options = {}) {
2114
- destroy$a(el);
2130
+ function init$b(el, options = {}) {
2131
+ destroy$b(el);
2115
2132
 
2116
2133
  el.classList.add(CSS_CLASS$a);
2117
2134
  reset$1(el);
@@ -2140,7 +2157,7 @@
2140
2157
  stateMap$4.set(el, { cleanup });
2141
2158
  }
2142
2159
 
2143
- function destroy$a(el) {
2160
+ function destroy$b(el) {
2144
2161
  const state = stateMap$4.get(el);
2145
2162
  if (state) {
2146
2163
  state.cleanup();
@@ -2156,33 +2173,33 @@
2156
2173
 
2157
2174
  var flip3d = /*#__PURE__*/Object.freeze({
2158
2175
  __proto__: null,
2159
- ANIMATION_ID: ANIMATION_ID$a,
2160
- destroy: destroy$a,
2161
- init: init$a
2176
+ ANIMATION_ID: ANIMATION_ID$b,
2177
+ destroy: destroy$b,
2178
+ init: init$b
2162
2179
  });
2163
2180
 
2164
- const ANIMATION_ID$9 = buildAnimId('float-idle');
2181
+ const ANIMATION_ID$a = buildAnimId('float-idle');
2165
2182
 
2166
2183
  const CSS_CLASS$9 = buildAnimClass('float-idle');
2167
2184
 
2168
- function init$9(el, options = {}) {
2185
+ function init$a(el, options = {}) {
2169
2186
  if (!el.classList.contains(CSS_CLASS$9)) {
2170
2187
  el.classList.add(CSS_CLASS$9);
2171
2188
  }
2172
2189
  }
2173
2190
 
2174
- function destroy$9(el) {
2191
+ function destroy$a(el) {
2175
2192
  el.classList.remove(CSS_CLASS$9);
2176
2193
  }
2177
2194
 
2178
2195
  var floatIdle = /*#__PURE__*/Object.freeze({
2179
2196
  __proto__: null,
2180
- ANIMATION_ID: ANIMATION_ID$9,
2181
- destroy: destroy$9,
2182
- init: init$9
2197
+ ANIMATION_ID: ANIMATION_ID$a,
2198
+ destroy: destroy$a,
2199
+ init: init$a
2183
2200
  });
2184
2201
 
2185
- const ANIMATION_ID$8 = buildAnimId('tilted-card');
2202
+ const ANIMATION_ID$9 = buildAnimId('tilted-card');
2186
2203
 
2187
2204
  const CSS_CLASS$8 = buildAnimClass('tilted-card');
2188
2205
  const stateMap$3 = new WeakMap();
@@ -2193,8 +2210,8 @@
2193
2210
  el.style.setProperty('--readdy-anim-card-scale', '1');
2194
2211
  }
2195
2212
 
2196
- function init$8(el, options = {}) {
2197
- destroy$8(el);
2213
+ function init$9(el, options = {}) {
2214
+ destroy$9(el);
2198
2215
 
2199
2216
  el.classList.add(CSS_CLASS$8);
2200
2217
  reset(el);
@@ -2227,7 +2244,7 @@
2227
2244
  stateMap$3.set(el, { cleanup });
2228
2245
  }
2229
2246
 
2230
- function destroy$8(el) {
2247
+ function destroy$9(el) {
2231
2248
  const state = stateMap$3.get(el);
2232
2249
  if (state) {
2233
2250
  state.cleanup();
@@ -2244,12 +2261,12 @@
2244
2261
 
2245
2262
  var tiltedCard = /*#__PURE__*/Object.freeze({
2246
2263
  __proto__: null,
2247
- ANIMATION_ID: ANIMATION_ID$8,
2248
- destroy: destroy$8,
2249
- init: init$8
2264
+ ANIMATION_ID: ANIMATION_ID$9,
2265
+ destroy: destroy$9,
2266
+ init: init$9
2250
2267
  });
2251
2268
 
2252
- const ANIMATION_ID$7 = buildAnimId('card-flip');
2269
+ const ANIMATION_ID$8 = buildAnimId('card-flip');
2253
2270
 
2254
2271
  const CSS_CLASS$7 = buildAnimClass('card-flip');
2255
2272
  const SCENE_CLASS = buildAnimClass('card-flip-scene');
@@ -2365,8 +2382,8 @@
2365
2382
  });
2366
2383
  }
2367
2384
 
2368
- function init$7(el, options = {}) {
2369
- destroy$7(el);
2385
+ function init$8(el, options = {}) {
2386
+ destroy$8(el);
2370
2387
 
2371
2388
  const originalNodes = collectRenderableNodes(el);
2372
2389
  const rect = el.getBoundingClientRect();
@@ -2420,7 +2437,7 @@
2420
2437
  el.replaceChildren(scene);
2421
2438
  }
2422
2439
 
2423
- function destroy$7(el) {
2440
+ function destroy$8(el) {
2424
2441
  const state = stateMap$2.get(el);
2425
2442
  el.classList.remove(CSS_CLASS$7);
2426
2443
  el.style.removeProperty('--readdy-anim-card-flip-duration');
@@ -2452,9 +2469,9 @@
2452
2469
 
2453
2470
  var cardFlip = /*#__PURE__*/Object.freeze({
2454
2471
  __proto__: null,
2455
- ANIMATION_ID: ANIMATION_ID$7,
2456
- destroy: destroy$7,
2457
- init: init$7
2472
+ ANIMATION_ID: ANIMATION_ID$8,
2473
+ destroy: destroy$8,
2474
+ init: init$8
2458
2475
  });
2459
2476
 
2460
2477
  function hasUsableBackgroundImage(node) {
@@ -2499,14 +2516,14 @@
2499
2516
  return el.firstElementChild instanceof HTMLElement ? el.firstElementChild : el
2500
2517
  }
2501
2518
 
2502
- const ANIMATION_ID$6 = buildAnimId('image-zoom-rotate');
2519
+ const ANIMATION_ID$7 = buildAnimId('image-zoom-rotate');
2503
2520
 
2504
2521
  const CSS_CLASS$6 = buildAnimClass('image-zoom-rotate');
2505
2522
  const MEDIA_CLASS$1 = buildAnimClass('card-media');
2506
2523
 
2507
2524
  const autoMediaState = new WeakMap();
2508
2525
 
2509
- function init$6(el, options = {}) {
2526
+ function init$7(el, options = {}) {
2510
2527
  if (!el.classList.contains(CSS_CLASS$6)) {
2511
2528
  el.classList.add(CSS_CLASS$6);
2512
2529
  }
@@ -2531,7 +2548,7 @@
2531
2548
  autoMediaState.set(el, state);
2532
2549
  }
2533
2550
 
2534
- function destroy$6(el) {
2551
+ function destroy$7(el) {
2535
2552
  el.classList.remove(CSS_CLASS$6);
2536
2553
  el.style.removeProperty('--readdy-anim-image-zoom-scale');
2537
2554
  el.style.removeProperty('--readdy-anim-image-zoom-rotate');
@@ -2546,16 +2563,16 @@
2546
2563
 
2547
2564
  var imageZoomRotate = /*#__PURE__*/Object.freeze({
2548
2565
  __proto__: null,
2549
- ANIMATION_ID: ANIMATION_ID$6,
2550
- destroy: destroy$6,
2551
- init: init$6
2566
+ ANIMATION_ID: ANIMATION_ID$7,
2567
+ destroy: destroy$7,
2568
+ init: init$7
2552
2569
  });
2553
2570
 
2554
- const ANIMATION_ID$5 = buildAnimId('rgb-split-glitch');
2571
+ const ANIMATION_ID$6 = buildAnimId('rgb-split-glitch');
2555
2572
 
2556
2573
  const CSS_CLASS$5 = buildAnimClass('rgb-split-glitch');
2557
2574
 
2558
- function init$5(el, options = {}) {
2575
+ function init$6(el, options = {}) {
2559
2576
  if (!el.classList.contains(CSS_CLASS$5)) {
2560
2577
  el.classList.add(CSS_CLASS$5);
2561
2578
  }
@@ -2565,7 +2582,7 @@
2565
2582
  el.style.setProperty('--readdy-anim-rgb-glitch-shadow', `${options.shadowOffset ?? 2}px`);
2566
2583
  }
2567
2584
 
2568
- function destroy$5(el) {
2585
+ function destroy$6(el) {
2569
2586
  el.classList.remove(CSS_CLASS$5);
2570
2587
  el.style.removeProperty('--readdy-anim-rgb-glitch-duration');
2571
2588
  el.style.removeProperty('--readdy-anim-rgb-glitch-shift');
@@ -2574,12 +2591,12 @@
2574
2591
 
2575
2592
  var rgbSplitGlitch = /*#__PURE__*/Object.freeze({
2576
2593
  __proto__: null,
2577
- ANIMATION_ID: ANIMATION_ID$5,
2578
- destroy: destroy$5,
2579
- init: init$5
2594
+ ANIMATION_ID: ANIMATION_ID$6,
2595
+ destroy: destroy$6,
2596
+ init: init$6
2580
2597
  });
2581
2598
 
2582
- const ANIMATION_ID$4 = buildAnimId('card-fan-spread');
2599
+ const ANIMATION_ID$5 = buildAnimId('card-fan-spread');
2583
2600
 
2584
2601
  const CSS_CLASS$4 = buildAnimClass('card-fan-spread');
2585
2602
  const STACK_CLASS = buildAnimClass('card-fan-stack');
@@ -2644,8 +2661,8 @@
2644
2661
  return stack
2645
2662
  }
2646
2663
 
2647
- function init$4(el, options = {}) {
2648
- destroy$4(el);
2664
+ function init$5(el, options = {}) {
2665
+ destroy$5(el);
2649
2666
 
2650
2667
  el.classList.add(CSS_CLASS$4);
2651
2668
  const spreadDistance = options.spreadDistance ?? 72;
@@ -2695,7 +2712,7 @@
2695
2712
  stateMap$1.set(el, state);
2696
2713
  }
2697
2714
 
2698
- function destroy$4(el) {
2715
+ function destroy$5(el) {
2699
2716
  const state = stateMap$1.get(el);
2700
2717
  if (state) {
2701
2718
  if (state.toggle) {
@@ -2724,12 +2741,12 @@
2724
2741
 
2725
2742
  var cardFanSpread = /*#__PURE__*/Object.freeze({
2726
2743
  __proto__: null,
2727
- ANIMATION_ID: ANIMATION_ID$4,
2728
- destroy: destroy$4,
2729
- init: init$4
2744
+ ANIMATION_ID: ANIMATION_ID$5,
2745
+ destroy: destroy$5,
2746
+ init: init$5
2730
2747
  });
2731
2748
 
2732
- const ANIMATION_ID$3 = buildAnimId('image-magnifier');
2749
+ const ANIMATION_ID$4 = buildAnimId('image-magnifier');
2733
2750
 
2734
2751
  const CSS_CLASS$3 = buildAnimClass('image-magnifier');
2735
2752
  const MEDIA_CLASS = buildAnimClass('card-media');
@@ -2957,8 +2974,8 @@
2957
2974
  lens.style.backgroundPosition = `${localX}% ${localY}%`;
2958
2975
  }
2959
2976
 
2960
- function init$3(el, options = {}) {
2961
- destroy$3(el);
2977
+ function init$4(el, options = {}) {
2978
+ destroy$4(el);
2962
2979
 
2963
2980
  el.classList.add(CSS_CLASS$3);
2964
2981
 
@@ -3039,7 +3056,7 @@
3039
3056
  primeLensSurface(el, state, zoomFactor);
3040
3057
  }
3041
3058
 
3042
- function destroy$3(el) {
3059
+ function destroy$4(el) {
3043
3060
  const state = stateMap.get(el);
3044
3061
  if (state) {
3045
3062
  state.cleanupPointerFollow();
@@ -3059,16 +3076,16 @@
3059
3076
 
3060
3077
  var imageMagnifier = /*#__PURE__*/Object.freeze({
3061
3078
  __proto__: null,
3062
- ANIMATION_ID: ANIMATION_ID$3,
3063
- destroy: destroy$3,
3064
- init: init$3
3079
+ ANIMATION_ID: ANIMATION_ID$4,
3080
+ destroy: destroy$4,
3081
+ init: init$4
3065
3082
  });
3066
3083
 
3067
- const ANIMATION_ID$2 = buildAnimId('pop-in-stack');
3084
+ const ANIMATION_ID$3 = buildAnimId('pop-in-stack');
3068
3085
 
3069
3086
  const CSS_CLASS$2 = buildAnimClass('pop-in-stack');
3070
3087
 
3071
- function init$2(el, options = {}) {
3088
+ function init$3(el, options = {}) {
3072
3089
  if (!el.classList.contains(CSS_CLASS$2)) {
3073
3090
  el.classList.add(CSS_CLASS$2);
3074
3091
  }
@@ -3079,7 +3096,7 @@
3079
3096
  el.style.setProperty('--readdy-anim-pop-scale-start', `${options.scaleStart ?? 0.88}`);
3080
3097
  }
3081
3098
 
3082
- function destroy$2(el) {
3099
+ function destroy$3(el) {
3083
3100
  el.classList.remove(CSS_CLASS$2);
3084
3101
  el.style.removeProperty('--readdy-anim-pop-delay');
3085
3102
  el.style.removeProperty('--readdy-anim-pop-duration');
@@ -3089,47 +3106,76 @@
3089
3106
 
3090
3107
  var popInStack = /*#__PURE__*/Object.freeze({
3091
3108
  __proto__: null,
3092
- ANIMATION_ID: ANIMATION_ID$2,
3093
- destroy: destroy$2,
3094
- init: init$2
3109
+ ANIMATION_ID: ANIMATION_ID$3,
3110
+ destroy: destroy$3,
3111
+ init: init$3
3095
3112
  });
3096
3113
 
3097
- const ANIMATION_ID$1 = buildAnimId('bounce-in-bottom');
3114
+ const ANIMATION_ID$2 = buildAnimId('bounce-in-bottom');
3098
3115
 
3099
3116
  const CSS_CLASS$1 = buildAnimClass('bounce-in-bottom');
3100
3117
 
3101
- function init$1(el, options = {}) {
3118
+ function init$2(el, options = {}) {
3102
3119
  if (!el.classList.contains(CSS_CLASS$1)) {
3103
3120
  el.classList.add(CSS_CLASS$1);
3104
3121
  }
3105
3122
  }
3106
3123
 
3107
- function destroy$1(el) {
3124
+ function destroy$2(el) {
3108
3125
  el.classList.remove(CSS_CLASS$1);
3109
3126
  }
3110
3127
 
3111
3128
  var bounceInBottom = /*#__PURE__*/Object.freeze({
3112
3129
  __proto__: null,
3113
- ANIMATION_ID: ANIMATION_ID$1,
3114
- destroy: destroy$1,
3115
- init: init$1
3130
+ ANIMATION_ID: ANIMATION_ID$2,
3131
+ destroy: destroy$2,
3132
+ init: init$2
3116
3133
  });
3117
3134
 
3118
- const ANIMATION_ID = buildAnimId('reveal-from-top');
3135
+ const ANIMATION_ID$1 = buildAnimId('reveal-from-top');
3119
3136
 
3120
3137
  const CSS_CLASS = buildAnimClass('reveal-from-top');
3121
3138
 
3122
- function init(el, options = {}) {
3139
+ function init$1(el, options = {}) {
3123
3140
  if (!el.classList.contains(CSS_CLASS)) {
3124
3141
  el.classList.add(CSS_CLASS);
3125
3142
  }
3126
3143
  }
3127
3144
 
3128
- function destroy(el) {
3145
+ function destroy$1(el) {
3129
3146
  el.classList.remove(CSS_CLASS);
3130
3147
  }
3131
3148
 
3132
3149
  var revealFromTop = /*#__PURE__*/Object.freeze({
3150
+ __proto__: null,
3151
+ ANIMATION_ID: ANIMATION_ID$1,
3152
+ destroy: destroy$1,
3153
+ init: init$1
3154
+ });
3155
+
3156
+ const ANIMATION_ID = buildAnimId('magic-ui-border-beam');
3157
+
3158
+ function init(el, options = {}) {
3159
+ init$l(el, {
3160
+ duration: options.duration ?? 3000,
3161
+ delay: options.delay ?? 0,
3162
+ borderWidth: options.borderWidth ?? 1.35,
3163
+ glowOpacity: options.glowOpacity ?? 0.28,
3164
+ size: options.size,
3165
+ initialOffset: options.initialOffset ?? 0,
3166
+ colorFrom: options.colorFrom ?? '#ff6b6b',
3167
+ colorTo: options.colorTo ?? '#ffb86b',
3168
+ secondaryColorFrom: options.secondaryColorFrom ?? '#5ea0ff',
3169
+ secondaryColorTo: options.secondaryColorTo ?? '#9ec5ff',
3170
+ reverse: options.reverse ?? false,
3171
+ });
3172
+ }
3173
+
3174
+ function destroy(el) {
3175
+ destroy$l(el);
3176
+ }
3177
+
3178
+ var magicUiBorderBeam = /*#__PURE__*/Object.freeze({
3133
3179
  __proto__: null,
3134
3180
  ANIMATION_ID: ANIMATION_ID,
3135
3181
  destroy: destroy,
@@ -3150,42 +3196,58 @@
3150
3196
  }
3151
3197
  }
3152
3198
 
3153
- const registry = {
3154
- [ANIMATION_ID$x]: defineAnimation(letterBounce),
3155
- [ANIMATION_ID$w]: defineAnimation(shimmerText),
3156
- [ANIMATION_ID$v]: defineAnimation(textType),
3157
- [ANIMATION_ID$u]: defineAnimation(gradientText),
3158
- [ANIMATION_ID$t]: defineAnimation(flyInChars),
3159
- [ANIMATION_ID$s]: defineAnimation(blurRise),
3160
- [ANIMATION_ID$r]: defineAnimation(splitText),
3161
- [ANIMATION_ID$q]: defineAnimation(shuffle),
3162
- [ANIMATION_ID$p]: defineAnimation(rollIn),
3163
- [ANIMATION_ID$o]: defineAnimation(animeSplittext),
3164
- [ANIMATION_ID$n]: defineAnimation(wordCurtainReveal),
3165
- [ANIMATION_ID$m]: defineAnimation(bounceInDown),
3166
- [ANIMATION_ID$l]: defineAnimation(magneticHover),
3167
- [ANIMATION_ID$k]: defineAnimation(borderBeam),
3168
- [ANIMATION_ID$j]: defineAnimation(shimmerBorder),
3169
- [ANIMATION_ID$i]: defineAnimation(rainbowButton),
3170
- [ANIMATION_ID$h]: defineAnimation(sketchButton),
3171
- [ANIMATION_ID$g]: defineAnimation(confettiButton),
3172
- [ANIMATION_ID$f]: defineAnimation(glowCta),
3173
- [ANIMATION_ID$e]: defineAnimation(bubbleButton),
3174
- [ANIMATION_ID$d]: defineAnimation(bounceElastic),
3175
- [ANIMATION_ID$c]: defineAnimation(pulse),
3176
- [ANIMATION_ID$b]: defineAnimation(blurFadeIn),
3177
- [ANIMATION_ID$a]: defineAnimation(flip3d),
3178
- [ANIMATION_ID$9]: defineAnimation(floatIdle),
3179
- [ANIMATION_ID$8]: defineAnimation(tiltedCard),
3180
- [ANIMATION_ID$7]: defineAnimation(cardFlip),
3181
- [ANIMATION_ID$6]: defineAnimation(imageZoomRotate),
3182
- [ANIMATION_ID$5]: defineAnimation(rgbSplitGlitch),
3183
- [ANIMATION_ID$4]: defineAnimation(cardFanSpread),
3184
- [ANIMATION_ID$3]: defineAnimation(imageMagnifier),
3185
- [ANIMATION_ID$2]: defineAnimation(popInStack),
3186
- [ANIMATION_ID$1]: defineAnimation(bounceInBottom),
3187
- [ANIMATION_ID]: defineAnimation(revealFromTop),
3188
- };
3199
+ function buildMetadataId(category, slug) {
3200
+ return `anim-readdy-${category}-${slug}`
3201
+ }
3202
+
3203
+ function register(registry, mod, aliases = []) {
3204
+ const entry = defineAnimation(mod);
3205
+ registry[mod.ANIMATION_ID] = entry;
3206
+ for (const alias of aliases) {
3207
+ registry[alias] = entry;
3208
+ }
3209
+ }
3210
+
3211
+ const registry = {};
3212
+
3213
+ register(registry, letterBounce, [buildMetadataId('header', 'letter-bounce')]);
3214
+ register(registry, shimmerText, [buildMetadataId('header', 'shimmer-text')]);
3215
+ register(registry, textType, [buildMetadataId('header', 'text-type')]);
3216
+ register(registry, gradientText, [buildMetadataId('header', 'gradient-text')]);
3217
+ register(registry, flyInChars, [buildMetadataId('header', 'fly-in-chars')]);
3218
+ register(registry, blurToSharpRise, [buildMetadataId('header', 'blur-to-sharp-rise')]);
3219
+ register(registry, blurRise, [buildMetadataId('card', 'blur-rise')]);
3220
+ register(registry, splitText, [buildMetadataId('header', 'split-text')]);
3221
+ register(registry, shuffle, [buildMetadataId('header', 'shuffle')]);
3222
+ register(registry, rollIn, [buildMetadataId('header', 'roll-in')]);
3223
+ register(registry, animeSplittext, [buildMetadataId('header', 'anime-splittext')]);
3224
+ register(registry, wordCurtainReveal, [buildMetadataId('header', 'word-curtain-reveal')]);
3225
+ register(registry, bounceInDown, [buildMetadataId('header', 'bounce-in-down')]);
3226
+
3227
+ register(registry, magneticHover, [buildMetadataId('button', 'magnetic-hover')]);
3228
+ register(registry, borderBeam, [buildMetadataId('button', 'border-beam')]);
3229
+ register(registry, shimmerBorder, [buildMetadataId('button', 'shimmer-border')]);
3230
+ register(registry, rainbowButton, [buildMetadataId('button', 'rainbow-button')]);
3231
+ register(registry, sketchButton, [buildMetadataId('button', 'sketch-button')]);
3232
+ register(registry, confettiButton, [buildMetadataId('button', 'confetti-button')]);
3233
+ register(registry, glowCta, [buildMetadataId('button', 'glow-cta')]);
3234
+ register(registry, bubbleButton, [buildMetadataId('button', 'bubble-button')]);
3235
+ register(registry, bounceElastic, [buildMetadataId('button', 'bounce-elastic')]);
3236
+ register(registry, pulse, [buildMetadataId('button', 'pulse')]);
3237
+ register(registry, blurFadeIn, [buildMetadataId('button', 'blur-fade-in')]);
3238
+ register(registry, flip3d, [buildMetadataId('button', '3d-flip')]);
3239
+
3240
+ register(registry, floatIdle, [buildMetadataId('card', 'float-idle')]);
3241
+ register(registry, tiltedCard, [buildMetadataId('card', 'tilted-card')]);
3242
+ register(registry, cardFlip, [buildMetadataId('card', 'card-flip')]);
3243
+ register(registry, imageZoomRotate, [buildMetadataId('card', 'image-zoom-rotate')]);
3244
+ register(registry, rgbSplitGlitch, [buildMetadataId('card', 'rgb-split-glitch')]);
3245
+ register(registry, cardFanSpread, [buildMetadataId('card', 'card-fan-spread')]);
3246
+ register(registry, imageMagnifier, [buildMetadataId('card', 'image-magnifier')]);
3247
+ register(registry, popInStack, [buildMetadataId('card', 'pop-in-stack')]);
3248
+ register(registry, bounceInBottom, [buildMetadataId('card', 'bounce-in-bottom')]);
3249
+ register(registry, revealFromTop, [buildMetadataId('card', 'reveal-from-top')]);
3250
+ register(registry, magicUiBorderBeam, [buildMetadataId('card', 'magic-ui-border-beam')]);
3189
3251
 
3190
3252
  return registry;
3191
3253