@elyri/motion 0.0.0-stage → 0.0.1

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 (114) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -2
  3. package/dist/chunk-A7JCTGZO.js +230 -0
  4. package/dist/chunk-A7JCTGZO.js.map +1 -0
  5. package/dist/core.cjs +238 -0
  6. package/dist/core.cjs.map +1 -0
  7. package/dist/core.d.cts +77 -0
  8. package/dist/core.d.ts +77 -0
  9. package/dist/core.js +3 -0
  10. package/dist/core.js.map +1 -0
  11. package/dist/index.cjs +4288 -0
  12. package/dist/index.cjs.map +1 -0
  13. package/dist/index.css +1118 -0
  14. package/dist/index.css.map +1 -0
  15. package/dist/index.d.cts +532 -0
  16. package/dist/index.d.ts +532 -0
  17. package/dist/index.js +4029 -0
  18. package/dist/index.js.map +1 -0
  19. package/package.json +60 -3
  20. package/src/components/animations/CountUp/CountUp.css +4 -0
  21. package/src/components/animations/CountUp/CountUp.tsx +100 -0
  22. package/src/components/animations/CountUp/index.ts +2 -0
  23. package/src/components/animations/FadeIn/FadeIn.css +43 -0
  24. package/src/components/animations/FadeIn/FadeIn.tsx +72 -0
  25. package/src/components/animations/FadeIn/index.ts +2 -0
  26. package/src/components/animations/Magnetic/Magnetic.css +11 -0
  27. package/src/components/animations/Magnetic/Magnetic.tsx +107 -0
  28. package/src/components/animations/Magnetic/index.ts +2 -0
  29. package/src/components/animations/ScaleIn/ScaleIn.css +24 -0
  30. package/src/components/animations/ScaleIn/ScaleIn.tsx +65 -0
  31. package/src/components/animations/ScaleIn/index.ts +2 -0
  32. package/src/components/animations/Spotlight/Spotlight.css +93 -0
  33. package/src/components/animations/Spotlight/Spotlight.tsx +100 -0
  34. package/src/components/animations/Spotlight/index.ts +2 -0
  35. package/src/components/animations/Tilt/Tilt.css +35 -0
  36. package/src/components/animations/Tilt/Tilt.tsx +123 -0
  37. package/src/components/animations/Tilt/index.ts +2 -0
  38. package/src/components/animations/index.ts +12 -0
  39. package/src/components/backgrounds/Aurora/Aurora.css +33 -0
  40. package/src/components/backgrounds/Aurora/Aurora.tsx +147 -0
  41. package/src/components/backgrounds/Aurora/index.ts +2 -0
  42. package/src/components/backgrounds/Caustics/Caustics.css +34 -0
  43. package/src/components/backgrounds/Caustics/Caustics.tsx +142 -0
  44. package/src/components/backgrounds/Caustics/index.ts +2 -0
  45. package/src/components/backgrounds/Contours/Contours.css +42 -0
  46. package/src/components/backgrounds/Contours/Contours.tsx +147 -0
  47. package/src/components/backgrounds/Contours/index.ts +2 -0
  48. package/src/components/backgrounds/DotField/DotField.css +44 -0
  49. package/src/components/backgrounds/DotField/DotField.tsx +135 -0
  50. package/src/components/backgrounds/DotField/index.ts +2 -0
  51. package/src/components/backgrounds/DragonScales/DragonScales.css +44 -0
  52. package/src/components/backgrounds/DragonScales/DragonScales.tsx +250 -0
  53. package/src/components/backgrounds/DragonScales/index.ts +2 -0
  54. package/src/components/backgrounds/Filaments/Filaments.css +38 -0
  55. package/src/components/backgrounds/Filaments/Filaments.tsx +138 -0
  56. package/src/components/backgrounds/Filaments/index.ts +2 -0
  57. package/src/components/backgrounds/FlipTiles/FlipTiles.css +44 -0
  58. package/src/components/backgrounds/FlipTiles/FlipTiles.tsx +368 -0
  59. package/src/components/backgrounds/FlipTiles/index.ts +2 -0
  60. package/src/components/backgrounds/Halo/Halo.css +43 -0
  61. package/src/components/backgrounds/Halo/Halo.tsx +122 -0
  62. package/src/components/backgrounds/Halo/index.ts +2 -0
  63. package/src/components/backgrounds/MeshGradient/MeshGradient.css +43 -0
  64. package/src/components/backgrounds/MeshGradient/MeshGradient.tsx +195 -0
  65. package/src/components/backgrounds/MeshGradient/index.ts +2 -0
  66. package/src/components/backgrounds/PixelVortex/PixelVortex.css +44 -0
  67. package/src/components/backgrounds/PixelVortex/PixelVortex.tsx +278 -0
  68. package/src/components/backgrounds/PixelVortex/index.ts +2 -0
  69. package/src/components/backgrounds/Planet/Planet.css +39 -0
  70. package/src/components/backgrounds/Planet/Planet.tsx +736 -0
  71. package/src/components/backgrounds/Planet/index.ts +2 -0
  72. package/src/components/backgrounds/SilkWaves/SilkWaves.css +44 -0
  73. package/src/components/backgrounds/SilkWaves/SilkWaves.tsx +144 -0
  74. package/src/components/backgrounds/SilkWaves/index.ts +2 -0
  75. package/src/components/backgrounds/Velvet/Velvet.css +35 -0
  76. package/src/components/backgrounds/Velvet/Velvet.tsx +246 -0
  77. package/src/components/backgrounds/Velvet/index.ts +2 -0
  78. package/src/components/backgrounds/index.ts +26 -0
  79. package/src/components/index.ts +4 -0
  80. package/src/components/media/AsciiImage/AsciiImage.css +16 -0
  81. package/src/components/media/AsciiImage/AsciiImage.tsx +366 -0
  82. package/src/components/media/AsciiImage/index.ts +2 -0
  83. package/src/components/media/index.ts +2 -0
  84. package/src/components/text/GradientText/GradientText.css +32 -0
  85. package/src/components/text/GradientText/GradientText.tsx +27 -0
  86. package/src/components/text/GradientText/index.ts +2 -0
  87. package/src/components/text/Marquee/Marquee.css +91 -0
  88. package/src/components/text/Marquee/Marquee.tsx +130 -0
  89. package/src/components/text/Marquee/index.ts +2 -0
  90. package/src/components/text/ParticleText/ParticleText.css +16 -0
  91. package/src/components/text/ParticleText/ParticleText.tsx +279 -0
  92. package/src/components/text/ParticleText/index.ts +2 -0
  93. package/src/components/text/RotatingText/RotatingText.css +133 -0
  94. package/src/components/text/RotatingText/RotatingText.tsx +112 -0
  95. package/src/components/text/RotatingText/index.ts +2 -0
  96. package/src/components/text/ScrambleText/ScrambleText.css +48 -0
  97. package/src/components/text/ScrambleText/ScrambleText.tsx +141 -0
  98. package/src/components/text/ScrambleText/index.ts +2 -0
  99. package/src/components/text/ScrollMarquee/ScrollMarquee.css +33 -0
  100. package/src/components/text/ScrollMarquee/ScrollMarquee.tsx +110 -0
  101. package/src/components/text/ScrollMarquee/index.ts +2 -0
  102. package/src/components/text/ScrollReveal/ScrollReveal.css +51 -0
  103. package/src/components/text/ScrollReveal/ScrollReveal.tsx +186 -0
  104. package/src/components/text/ScrollReveal/index.ts +2 -0
  105. package/src/components/text/SplitReveal/SplitReveal.css +52 -0
  106. package/src/components/text/SplitReveal/SplitReveal.tsx +127 -0
  107. package/src/components/text/SplitReveal/index.ts +2 -0
  108. package/src/components/text/Typewriter/Typewriter.css +37 -0
  109. package/src/components/text/Typewriter/Typewriter.tsx +80 -0
  110. package/src/components/text/Typewriter/index.ts +2 -0
  111. package/src/components/text/WaveText/WaveText.css +28 -0
  112. package/src/components/text/WaveText/WaveText.tsx +52 -0
  113. package/src/components/text/WaveText/index.ts +2 -0
  114. package/src/components/text/index.ts +20 -0
@@ -0,0 +1,532 @@
1
+ import * as react from 'react';
2
+ import { ReactNode, CSSProperties } from 'react';
3
+ import { ColorScheme } from './core.js';
4
+ export { ClassValue, LinearRgb, ReducedMotionProvider, ReducedMotionProviderProps, ShaderCanvasOptions, ShaderFrame, SplitTextBy, SplitTextSegment, SplitTextUnit, cn, hexToLinearRgb, splitTextUnits, useColorScheme, usePrefersReducedMotion, useShaderCanvas } from './core.js';
5
+
6
+ interface CountUpProps {
7
+ className?: string;
8
+ /** 目标数值 */
9
+ to: number;
10
+ /** 起始数值 */
11
+ from?: number;
12
+ /** 动画时长(毫秒) */
13
+ duration?: number;
14
+ /** 保留的小数位数 */
15
+ decimals?: number;
16
+ /** 是否使用千分位分隔符 */
17
+ separator?: boolean;
18
+ /** 数字前缀 */
19
+ prefix?: string;
20
+ /** 数字后缀 */
21
+ suffix?: string;
22
+ /** 是否只在首次进入视口时播放 */
23
+ once?: boolean;
24
+ }
25
+ /** 数字滚动:进入视口时从起始值过渡到目标值 */
26
+ declare function CountUp({ className, to, from, duration, decimals, separator, prefix, suffix, once, }: CountUpProps): react.JSX.Element;
27
+
28
+ type FadeInDirection = 'up' | 'down' | 'left' | 'right' | 'none';
29
+ interface FadeInProps {
30
+ children: ReactNode;
31
+ className?: string;
32
+ direction?: FadeInDirection;
33
+ delay?: number;
34
+ duration?: number;
35
+ distance?: number;
36
+ once?: boolean;
37
+ }
38
+ declare function FadeIn({ children, className, direction, delay, duration, distance, once, }: FadeInProps): react.JSX.Element;
39
+
40
+ interface MagneticProps {
41
+ children: ReactNode;
42
+ className?: string;
43
+ /** 吸附强度(0-1),元素向指针偏移的距离比例 */
44
+ strength?: number;
45
+ /** 元素边缘向外扩展的触发范围(像素) */
46
+ range?: number;
47
+ /** 指针离开触发范围后的回正时长(毫秒) */
48
+ resetDuration?: number;
49
+ }
50
+ /** 磁吸:指针靠近时元素被吸附偏移,离开后缓动回正 */
51
+ declare function Magnetic({ children, className, strength, range, resetDuration }: MagneticProps): react.JSX.Element;
52
+
53
+ interface ScaleInProps {
54
+ children: ReactNode;
55
+ className?: string;
56
+ /** 起始缩放比例 */
57
+ from?: number;
58
+ /** 延迟(毫秒) */
59
+ delay?: number;
60
+ /** 动画时长(毫秒) */
61
+ duration?: number;
62
+ /** 是否只在首次进入视口时触发 */
63
+ once?: boolean;
64
+ }
65
+ declare function ScaleIn({ children, className, from, delay, duration, once }: ScaleInProps): react.JSX.Element;
66
+
67
+ interface SpotlightProps {
68
+ children: ReactNode;
69
+ className?: string;
70
+ /** 光斑颜色 */
71
+ color?: string;
72
+ /** 光斑半径(像素) */
73
+ size?: number;
74
+ /** 是否显示卡片内部跟随指针的径向光晕 */
75
+ glow?: boolean;
76
+ /** 是否显示指针附近的边框光晕 */
77
+ borderGlow?: boolean;
78
+ /** 卡片圆角(像素) */
79
+ radius?: number;
80
+ }
81
+ /** 聚光卡片:指针位置泛起径向高光,可选择性地点亮边框;内部元素加 elyri-spotlight__item 可获得同款边框光晕 */
82
+ declare function Spotlight({ children, className, color, size, glow, borderGlow, radius, }: SpotlightProps): react.JSX.Element;
83
+
84
+ interface TiltProps {
85
+ children: ReactNode;
86
+ className?: string;
87
+ /** 最大倾斜角度(度) */
88
+ max?: number;
89
+ /** 透视距离(像素) */
90
+ perspective?: number;
91
+ /** 是否显示跟随指针的高光 */
92
+ glare?: boolean;
93
+ }
94
+ /** 指针跟随倾斜:根据指针在元素内的位置计算 3D 旋转 */
95
+ declare function Tilt({ children, className, max, perspective, glare }: TiltProps): react.JSX.Element;
96
+
97
+ interface AuroraProps {
98
+ children?: ReactNode;
99
+ className?: string;
100
+ /** 三段渐变色:帘底、中段、帘顶(hex) */
101
+ colors?: [string, string, string];
102
+ /** 动画速度倍率 */
103
+ speed?: number;
104
+ /** 极光亮度倍率 */
105
+ intensity?: number;
106
+ /** 是否显示星空 */
107
+ stars?: boolean;
108
+ /** 指针附近的极光是否增亮 */
109
+ interactive?: boolean;
110
+ }
111
+ declare function Aurora({ children, className, colors, speed, intensity, stars, interactive, }: AuroraProps): react.JSX.Element;
112
+
113
+ interface CausticsProps {
114
+ children?: ReactNode;
115
+ className?: string;
116
+ /** 水体颜色(hex) */
117
+ color?: string;
118
+ /** 焦散光色(hex) */
119
+ highlightColor?: string;
120
+ /** 光纹密度倍率 */
121
+ density?: number;
122
+ /** 动画速度倍率 */
123
+ speed?: number;
124
+ /** 指针处是否荡开水波并聚光 */
125
+ interactive?: boolean;
126
+ }
127
+ declare function Caustics({ children, className, color, highlightColor, density, speed, interactive, }: CausticsProps): react.JSX.Element;
128
+
129
+ interface ContoursProps {
130
+ children?: ReactNode;
131
+ className?: string;
132
+ /** 等高线颜色(hex) */
133
+ color?: string;
134
+ /** 指针附近等高线的强调色(hex) */
135
+ highlightColor?: string;
136
+ /** 等高线密度倍率 */
137
+ density?: number;
138
+ /** 动画速度倍率 */
139
+ speed?: number;
140
+ /** 指针处是否隆起一座小山 */
141
+ interactive?: boolean;
142
+ }
143
+ declare function Contours({ children, className, color, highlightColor, density, speed, interactive, }: ContoursProps): react.JSX.Element;
144
+
145
+ interface DotFieldProps {
146
+ children?: ReactNode;
147
+ className?: string;
148
+ /** 点的底色(hex) */
149
+ color?: string;
150
+ /** 波峰与指针附近的点所用的强调色(hex) */
151
+ highlightColor?: string;
152
+ /** 点阵间距(CSS 像素) */
153
+ gap?: number;
154
+ /** 动画速度倍率 */
155
+ speed?: number;
156
+ /** 指针附近的点是否被放大、推开 */
157
+ interactive?: boolean;
158
+ }
159
+ declare function DotField({ children, className, color, highlightColor, gap, speed, interactive, }: DotFieldProps): react.JSX.Element;
160
+
161
+ interface DragonScalesProps {
162
+ children?: ReactNode;
163
+ className?: string;
164
+ /** 鳞片本体色(hex) */
165
+ color?: string;
166
+ /** 反光条与鳞缘高光色(hex) */
167
+ highlightColor?: string;
168
+ /** 单片鳞宽度(px) */
169
+ scaleSize?: number;
170
+ /** 动画速度倍率 */
171
+ speed?: number;
172
+ /** 鳞片开合幅度 0-1,0 为关闭 */
173
+ flare?: number;
174
+ /** 光源是否跟随指针 */
175
+ interactive?: boolean;
176
+ /** 强制明暗方案,默认跟随页面主题 */
177
+ scheme?: ColorScheme;
178
+ }
179
+ declare function DragonScales({ children, className, color, highlightColor, scaleSize, speed, flare, interactive, scheme: forcedScheme, }: DragonScalesProps): react.JSX.Element;
180
+
181
+ interface FilamentsProps {
182
+ children?: ReactNode;
183
+ className?: string;
184
+ /** 光丝主色(hex) */
185
+ color?: string;
186
+ /** 沿光丝渐变的第二种颜色(hex) */
187
+ highlightColor?: string;
188
+ /** 光丝振幅倍率 */
189
+ amplitude?: number;
190
+ /** 动画速度倍率 */
191
+ speed?: number;
192
+ /** 指针处的光丝是否被拨动、弯向指针 */
193
+ interactive?: boolean;
194
+ }
195
+ declare function Filaments({ children, className, color, highlightColor, amplitude, speed, interactive, }: FilamentsProps): react.JSX.Element;
196
+
197
+ type FlipTilesPattern = 'wave' | 'ripple' | 'drift';
198
+ interface FlipTilesProps {
199
+ children?: ReactNode;
200
+ className?: string;
201
+ /** 立方体侧面的强调色(hex),翻滚时翻上来的就是这一面 */
202
+ color?: string;
203
+ /** 金属倒角与反光条的高光色(hex) */
204
+ highlightColor?: string;
205
+ /** 立方体间距(px),即单个立方体加缝隙的宽度 */
206
+ tileSize?: number;
207
+ /** 动画速度倍率 */
208
+ speed?: number;
209
+ /** 翻滚编排:成列扫过、中心涟漪或有机漂移 */
210
+ pattern?: FlipTilesPattern;
211
+ /** 指针处立方体升起(微凸)是否跟随指针 */
212
+ interactive?: boolean;
213
+ }
214
+ declare function FlipTiles({ children, className, color, highlightColor, tileSize, speed, pattern, interactive, }: FlipTilesProps): react.JSX.Element;
215
+
216
+ interface HaloProps {
217
+ children?: ReactNode;
218
+ className?: string;
219
+ /** 光环的两种渐变色(hex),沿圆周缓慢流转 */
220
+ colors?: [string, string];
221
+ /** 光环半径,相对画面高度的倍率 */
222
+ size?: number;
223
+ /** 动画速度倍率 */
224
+ speed?: number;
225
+ /** 光环中心是否轻微偏向指针 */
226
+ interactive?: boolean;
227
+ }
228
+ declare function Halo({ children, className, colors, size, speed, interactive, }: HaloProps): react.JSX.Element;
229
+
230
+ interface MeshGradientProps {
231
+ children?: ReactNode;
232
+ className?: string;
233
+ /** 自定义内联样式,可用于控制尺寸 */
234
+ style?: CSSProperties;
235
+ /** 四个色团的颜色(hex) */
236
+ colors?: [string, string, string, string];
237
+ /** 胶片颗粒强度,0 为关闭 */
238
+ grain?: number;
239
+ /** 动画速度倍率 */
240
+ speed?: number;
241
+ /** 指针处的色彩漩涡是否跟随指针 */
242
+ interactive?: boolean;
243
+ }
244
+ declare function MeshGradient({ children, className, style, colors, grain, speed, interactive, }: MeshGradientProps): react.JSX.Element;
245
+
246
+ interface PixelVortexProps {
247
+ children?: ReactNode;
248
+ className?: string;
249
+ /**
250
+ * 在 LED 屏上播放的视频地址。跨域视频需服务端允许 CORS;服务端还需支持 Range 请求,
251
+ * 否则大视频会整段下载而无法边下边播。未提供或加载失败时显示火焰流动效果。
252
+ */
253
+ videoSrc?: string;
254
+ /** 火焰主色(hex) */
255
+ color?: string;
256
+ /** 最亮处的高光色(hex) */
257
+ highlightColor?: string;
258
+ /** 单颗灯珠尺寸(CSS 像素) */
259
+ cellSize?: number;
260
+ /** 是否显示拼接屏接缝(每 16×10 颗灯珠一块) */
261
+ seams?: boolean;
262
+ /** 接缝宽度(CSS 像素) */
263
+ seamWidth?: number;
264
+ /** 动画速度倍率 */
265
+ speed?: number;
266
+ /** 光晕中心是否跟随指针 */
267
+ interactive?: boolean;
268
+ }
269
+ declare function PixelVortex({ children, className, videoSrc, color, highlightColor, cellSize, seams, seamWidth, speed, interactive, }: PixelVortexProps): react.JSX.Element;
270
+
271
+ type PlanetKind = 'mars' | 'jupiter' | 'earth';
272
+ interface PlanetProps {
273
+ children?: ReactNode;
274
+ className?: string;
275
+ planet?: PlanetKind;
276
+ color?: string;
277
+ terrainColor?: string;
278
+ atmosphereColor?: string;
279
+ atmosphere?: number;
280
+ craters?: number;
281
+ cityLights?: boolean;
282
+ stars?: number;
283
+ horizon?: number;
284
+ speed?: number;
285
+ sun?: boolean;
286
+ sunPosition?: {
287
+ x: number;
288
+ y: number;
289
+ };
290
+ interactive?: boolean;
291
+ }
292
+ declare function Planet({ children, className, planet, color, terrainColor, atmosphereColor, atmosphere, craters, cityLights, stars, horizon, speed, sun, sunPosition, interactive, }: PlanetProps): react.JSX.Element;
293
+
294
+ interface SilkWavesProps {
295
+ children?: ReactNode;
296
+ className?: string;
297
+ /** 丝绸本体色(hex) */
298
+ color?: string;
299
+ /** 光泽高光色(hex) */
300
+ highlightColor?: string;
301
+ /** 褶皱密度倍率 */
302
+ folds?: number;
303
+ /** 动画速度倍率 */
304
+ speed?: number;
305
+ /** 光源是否跟随指针 */
306
+ interactive?: boolean;
307
+ }
308
+ declare function SilkWaves({ children, className, color, highlightColor, folds, speed, interactive, }: SilkWavesProps): react.JSX.Element;
309
+
310
+ interface VelvetProps {
311
+ children?: ReactNode;
312
+ className?: string;
313
+ /** 丝绒本体色(hex) */
314
+ color?: string;
315
+ /** 绒面光晕色(hex) */
316
+ sheenColor?: string;
317
+ /** 褶皱密度倍率 */
318
+ folds?: number;
319
+ /** 绒毛质感强度,0 为光洁、1 为明显的毛绒颗粒 */
320
+ fuzz?: number;
321
+ /** 四周暗角强度,0 为无暗角 */
322
+ vignette?: number;
323
+ /** 动画速度倍率 */
324
+ speed?: number;
325
+ /** 光源是否跟随指针,指针划过是否留下渐消的压痕 */
326
+ interactive?: boolean;
327
+ }
328
+ declare function Velvet({ children, className, color, sheenColor, folds, fuzz, vignette, speed, interactive, }: VelvetProps): react.JSX.Element;
329
+
330
+ interface AsciiImageProps {
331
+ /** 图片地址。跨域图片需服务端允许 CORS,否则无法读取像素,会退回显示原图 */
332
+ src: string;
333
+ /** 替代文本,提供给读屏软件 */
334
+ alt?: string;
335
+ className?: string;
336
+ /** 每行字符数,越大细节越多 */
337
+ columns?: number;
338
+ /** 字符梯度,从稀疏到密集排列 */
339
+ characters?: string;
340
+ /** 是否按原图像素着色 */
341
+ colored?: boolean;
342
+ /** 单色模式下的字符颜色,默认继承文字颜色;也可用 CSS 变量 --elyri-ascii-color 覆盖 */
343
+ color?: string;
344
+ /** 反转明暗映射(默认深色主题下亮处字符密集,浅色主题下暗处字符密集) */
345
+ invert?: boolean;
346
+ /** 进入视口时是否自上而下解码显现 */
347
+ animated?: boolean;
348
+ /** 显现动画时长(毫秒) */
349
+ duration?: number;
350
+ /** 是否有一道斜向高光周期性扫过 */
351
+ shimmer?: boolean;
352
+ /** 每帧随机闪烁的字符比例(0-1),0 为关闭 */
353
+ flicker?: number;
354
+ /** 指针附近的字符是否被推开、提亮并乱码 */
355
+ interactive?: boolean;
356
+ /** 指针影响半径(CSS 像素) */
357
+ radius?: number;
358
+ }
359
+ declare function AsciiImage({ src, alt, className, columns, characters, colored, color, invert, animated, duration, shimmer, flicker, interactive, radius, }: AsciiImageProps): react.JSX.Element;
360
+
361
+ interface GradientTextProps {
362
+ children: ReactNode;
363
+ className?: string;
364
+ colors?: string[];
365
+ animated?: boolean;
366
+ /** 流动动画速度倍率 */
367
+ speed?: number;
368
+ }
369
+ declare function GradientText({ children, className, colors, animated, speed }: GradientTextProps): react.JSX.Element;
370
+
371
+ type MarqueeDirection = 'left' | 'right' | 'up' | 'down';
372
+ interface MarqueeProps {
373
+ /** 循环滚动的内容,任意节点,会被复制多份以形成无缝循环 */
374
+ children: ReactNode;
375
+ className?: string;
376
+ /** 滚动方向 */
377
+ direction?: MarqueeDirection;
378
+ /** 跑完一轮所需的秒数,数值越大越慢 */
379
+ duration?: number;
380
+ /** 最少重复份数;实际份数会按容器尺寸自动补足,保证循环无缝 */
381
+ repeat?: number;
382
+ /** 每份内容之间的间距,单位 px */
383
+ gap?: number;
384
+ /** 是否无限重复播放,关闭时只播放一轮 */
385
+ infinite?: boolean;
386
+ /** 鼠标悬停时是否暂停 */
387
+ pauseOnHover?: boolean;
388
+ }
389
+ declare function Marquee({ children, className, direction, duration, repeat, gap, infinite, pauseOnHover, }: MarqueeProps): react.JSX.Element;
390
+
391
+ interface ParticleTextProps {
392
+ /** 由粒子组成的文本,仅支持纯字符串,可用 \n 换行 */
393
+ children: string;
394
+ className?: string;
395
+ /** 粒子颜色,默认继承文字颜色;也可用 CSS 变量 --elyri-particle-color 覆盖 */
396
+ color?: string;
397
+ /** 单个粒子边长(CSS 像素) */
398
+ particleSize?: number;
399
+ /** 采样间距(CSS 像素),越小粒子越密 */
400
+ gap?: number;
401
+ /** 指针排斥半径(CSS 像素),0 为关闭交互 */
402
+ radius?: number;
403
+ /** 排斥力度倍率 */
404
+ force?: number;
405
+ /** 首次进入视口时粒子是否从四周飞入聚合成字 */
406
+ assemble?: boolean;
407
+ }
408
+ declare function ParticleText({ children, className, color, particleSize, gap, radius, force, assemble, }: ParticleTextProps): react.JSX.Element;
409
+
410
+ interface RotatingTextProps {
411
+ /** 轮播的词语列表,至少一个 */
412
+ words: string[];
413
+ className?: string;
414
+ /** 每个词的停留时长(毫秒) */
415
+ interval?: number;
416
+ /** 单词翻转进出的动画时长(毫秒) */
417
+ duration?: number;
418
+ /** 切换效果:flip 为 3D 翻转字符;block 为圆角色块包裹文字,块宽随词伸缩 */
419
+ variant?: 'flip' | 'block';
420
+ }
421
+ /** 词语轮换:多个词依次翻转切换,容器宽度随词宽平滑过渡 */
422
+ declare function RotatingText({ words, className, interval, duration, variant, }: RotatingTextProps): react.JSX.Element;
423
+
424
+ type ScrambleTextTrigger = 'view' | 'hover';
425
+ interface ScrambleTextProps {
426
+ /** 需要解码显现的文本,仅支持纯字符串 */
427
+ children: string;
428
+ className?: string;
429
+ /** 触发方式:进入视口或指针悬停 */
430
+ trigger?: ScrambleTextTrigger;
431
+ /** 乱码刷新间隔(毫秒) */
432
+ speed?: number;
433
+ /** 相邻字符依次定格的间隔(毫秒) */
434
+ stagger?: number;
435
+ /** 乱码字符池 */
436
+ characters?: string;
437
+ /** 乱码字符的强调色 */
438
+ accentColor?: string;
439
+ /** 乱码辉光强度倍率,0 为关闭,默认 1 */
440
+ glow?: number;
441
+ /** 视口模式下是否只在首次进入时触发 */
442
+ once?: boolean;
443
+ }
444
+ declare function ScrambleText({ children, className, trigger, speed, stagger, characters, accentColor, glow, once, }: ScrambleTextProps): react.JSX.Element;
445
+
446
+ type ScrollMarqueeDirection = 'left' | 'right';
447
+ interface ScrollMarqueeProps {
448
+ /** 需要滚动的文本,仅支持纯字符串 */
449
+ children: string;
450
+ className?: string;
451
+ /** 滚动方向 */
452
+ direction?: ScrollMarqueeDirection;
453
+ /** 页面每滚动 1px,文字横向移动的像素数 */
454
+ speed?: number;
455
+ /** 行数,相邻两行方向相反 */
456
+ rows?: number;
457
+ /** 内容重复份数,用于铺满并实现无缝循环 */
458
+ repeat?: number;
459
+ /** 是否无限循环,关闭时走满一份内容后停住 */
460
+ infinite?: boolean;
461
+ }
462
+ declare function ScrollMarquee({ children, className, direction, speed, rows, repeat, infinite, }: ScrollMarqueeProps): react.JSX.Element;
463
+
464
+ type ScrollRevealBy = 'char' | 'word';
465
+ interface ScrollRevealProps {
466
+ /** 需要点亮的文本,仅支持纯字符串 */
467
+ children: string;
468
+ className?: string;
469
+ /** 点亮单位:按单词或按字符 */
470
+ by?: ScrollRevealBy;
471
+ /** 滚动区域高度(像素),文本超出后可滚动 */
472
+ height?: number;
473
+ /** 未点亮时的不透明度,0 为完全不可见 */
474
+ dimOpacity?: number;
475
+ /** 未点亮时的模糊半径(像素),0 为不模糊 */
476
+ blur?: number;
477
+ }
478
+ /** 滚动点亮:随容器滚动,文本从头至尾逐单元点亮 */
479
+ declare function ScrollReveal({ children, className, by, height, dimOpacity, blur, }: ScrollRevealProps): react.JSX.Element;
480
+
481
+ type SplitRevealBy = 'char' | 'word';
482
+ interface SplitRevealProps {
483
+ /** 需要浮现的文本,仅支持纯字符串 */
484
+ children: string;
485
+ className?: string;
486
+ /** 拆分单位:按字符或按单词 */
487
+ by?: SplitRevealBy;
488
+ /** 起始延迟(毫秒) */
489
+ delay?: number;
490
+ /** 相邻单元之间的播放间隔(毫秒) */
491
+ stagger?: number;
492
+ /** 单个单元的动画时长(毫秒) */
493
+ duration?: number;
494
+ /** 位移距离(像素) */
495
+ distance?: number;
496
+ /** 是否只在首次进入视口时触发 */
497
+ once?: boolean;
498
+ }
499
+ declare function SplitReveal({ children, className, by, delay, stagger, duration, distance, once, }: SplitRevealProps): react.JSX.Element;
500
+
501
+ interface TypewriterProps {
502
+ /** 需要逐字输出的文本,仅支持纯字符串 */
503
+ children: string;
504
+ className?: string;
505
+ /** 每个字符的输入间隔(毫秒) */
506
+ speed?: number;
507
+ /** 开始输入前的延迟(毫秒) */
508
+ startDelay?: number;
509
+ /** 输入完成后是否循环重播 */
510
+ loop?: boolean;
511
+ /** 循环重播前的停顿(毫秒) */
512
+ loopDelay?: number;
513
+ /** 是否显示闪烁光标 */
514
+ cursor?: boolean;
515
+ }
516
+ declare function Typewriter({ children, className, speed, startDelay, loop, loopDelay, cursor, }: TypewriterProps): react.JSX.Element;
517
+
518
+ interface WaveTextProps {
519
+ /** 需要起伏的文本,仅支持纯字符串 */
520
+ children: string;
521
+ className?: string;
522
+ /** 振幅(像素) */
523
+ amplitude?: number;
524
+ /** 单个字符一次起伏的时长(毫秒) */
525
+ speed?: number;
526
+ /** 相邻字符的相位差(毫秒),越大波浪越稀疏 */
527
+ stagger?: number;
528
+ }
529
+ /** 波浪文字:字符按正弦节奏依次上下起伏 */
530
+ declare function WaveText({ children, className, amplitude, speed, stagger }: WaveTextProps): react.JSX.Element;
531
+
532
+ export { AsciiImage, type AsciiImageProps, Aurora, type AuroraProps, Caustics, type CausticsProps, ColorScheme, Contours, type ContoursProps, CountUp, type CountUpProps, DotField, type DotFieldProps, DragonScales, type DragonScalesProps, FadeIn, type FadeInDirection, type FadeInProps, Filaments, type FilamentsProps, FlipTiles, type FlipTilesPattern, type FlipTilesProps, GradientText, type GradientTextProps, Halo, type HaloProps, Magnetic, type MagneticProps, Marquee, type MarqueeDirection, type MarqueeProps, MeshGradient, type MeshGradientProps, ParticleText, type ParticleTextProps, PixelVortex, type PixelVortexProps, Planet, type PlanetKind, type PlanetProps, RotatingText, type RotatingTextProps, ScaleIn, type ScaleInProps, ScrambleText, type ScrambleTextProps, type ScrambleTextTrigger, ScrollMarquee, type ScrollMarqueeDirection, type ScrollMarqueeProps, ScrollReveal, type ScrollRevealBy, type ScrollRevealProps, SilkWaves, type SilkWavesProps, SplitReveal, type SplitRevealBy, type SplitRevealProps, Spotlight, type SpotlightProps, Tilt, type TiltProps, Typewriter, type TypewriterProps, Velvet, type VelvetProps, WaveText, type WaveTextProps };