@xdy-npm/react-particle-backgrounds 1.0.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.
- package/LICENSE +21 -0
- package/README.md +177 -0
- package/dist/index.d.mts +131 -0
- package/dist/index.d.ts +131 -0
- package/dist/index.js +1103 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1081 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +64 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-present ruofeng
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# react-particle-backgrounds
|
|
2
|
+
|
|
3
|
+
A React component library that provides **7 beautiful particle background themes** powered by [tsparticles](https://particles.js.org/) and [Three.js](https://threejs.org/).
|
|
4
|
+
|
|
5
|
+
## Themes
|
|
6
|
+
|
|
7
|
+
| Theme | ID | Description |
|
|
8
|
+
|-------|----|-------------|
|
|
9
|
+
| ✨ Star Links | `starline` | Classic particle linking effect |
|
|
10
|
+
| ❄️ Snowfall | `snow` | Romantic falling snowflakes |
|
|
11
|
+
| 🫧 Bubbles | `bubble` | Dreamy rising bubbles |
|
|
12
|
+
| ⭐ Twinkling Stars | `stars` | Sparkling starry sky |
|
|
13
|
+
| 🪲 Fireflies | `firefly` | Warm glowing firefly effect |
|
|
14
|
+
| 🔷 Geometry | `geometry` | Floating abstract geometric shapes |
|
|
15
|
+
| 🌊 Particle Ocean | `wave` | 3D particle wave (Three.js) |
|
|
16
|
+
| 🚫 None | `none` | Disable effects |
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install @xdy-npm/react-particle-backgrounds
|
|
22
|
+
# or
|
|
23
|
+
pnpm add @xdy-npm/react-particle-backgrounds
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
For the **Particle Ocean** (wave) theme, you also need Three.js:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install three
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Quick Start
|
|
33
|
+
|
|
34
|
+
### Simple Usage (Props)
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import { ParticlesBackground } from '@xdy-npm/react-particle-backgrounds';
|
|
38
|
+
|
|
39
|
+
function App() {
|
|
40
|
+
return (
|
|
41
|
+
<div>
|
|
42
|
+
<ParticlesBackground theme="starline" isDark />
|
|
43
|
+
<main style={{ position: 'relative', zIndex: 1 }}>
|
|
44
|
+
<h1>My App</h1>
|
|
45
|
+
</main>
|
|
46
|
+
</div>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### With Theme Selector (Context)
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
import {
|
|
55
|
+
ParticleProvider,
|
|
56
|
+
ParticlesBackground,
|
|
57
|
+
ThemeSelector,
|
|
58
|
+
} from '@xdy-npm/react-particle-backgrounds';
|
|
59
|
+
|
|
60
|
+
function App() {
|
|
61
|
+
return (
|
|
62
|
+
<ParticleProvider defaultTheme="snow" isDark>
|
|
63
|
+
<ParticlesBackground />
|
|
64
|
+
<ThemeSelector position="bottom-right" accentColor="#3b82f6" />
|
|
65
|
+
<main style={{ position: 'relative', zIndex: 1 }}>
|
|
66
|
+
<h1>My App</h1>
|
|
67
|
+
</main>
|
|
68
|
+
</ParticleProvider>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Programmatic Theme Switching
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import {
|
|
77
|
+
ParticleProvider,
|
|
78
|
+
ParticlesBackground,
|
|
79
|
+
useParticleTheme,
|
|
80
|
+
} from '@xdy-npm/react-particle-backgrounds';
|
|
81
|
+
|
|
82
|
+
function ThemeButton() {
|
|
83
|
+
const { themeId, setTheme } = useParticleTheme();
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<button onClick={() => setTheme('firefly')}>
|
|
87
|
+
Current: {themeId} — Switch to Firefly
|
|
88
|
+
</button>
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function App() {
|
|
93
|
+
return (
|
|
94
|
+
<ParticleProvider>
|
|
95
|
+
<ParticlesBackground />
|
|
96
|
+
<ThemeButton />
|
|
97
|
+
</ParticleProvider>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## API
|
|
103
|
+
|
|
104
|
+
### `<ParticlesBackground />`
|
|
105
|
+
|
|
106
|
+
| Prop | Type | Default | Description |
|
|
107
|
+
|------|------|---------|-------------|
|
|
108
|
+
| `theme` | `ThemeId \| string` | `'starline'` | Theme ID (overrides provider) |
|
|
109
|
+
| `isDark` | `boolean` | `true` | Dark mode toggle |
|
|
110
|
+
| `onLoaded` | `(container?) => void` | — | Callback when particles load |
|
|
111
|
+
| `className` | `string` | — | CSS class |
|
|
112
|
+
| `style` | `CSSProperties` | — | Inline styles |
|
|
113
|
+
|
|
114
|
+
### `<ParticleProvider />`
|
|
115
|
+
|
|
116
|
+
| Prop | Type | Default | Description |
|
|
117
|
+
|------|------|---------|-------------|
|
|
118
|
+
| `defaultTheme` | `ThemeId \| string` | `'starline'` | Initial theme |
|
|
119
|
+
| `isDark` | `boolean` | `true` | Dark mode state |
|
|
120
|
+
| `persist` | `boolean` | `true` | Save to localStorage |
|
|
121
|
+
| `children` | `ReactNode` | — | Child components |
|
|
122
|
+
|
|
123
|
+
### `<ThemeSelector />`
|
|
124
|
+
|
|
125
|
+
| Prop | Type | Default | Description |
|
|
126
|
+
|------|------|---------|-------------|
|
|
127
|
+
| `position` | `'bottom-right' \| 'bottom-left' \| 'top-right' \| 'top-left'` | `'bottom-right'` | Button position |
|
|
128
|
+
| `accentColor` | `string` | `'#3b82f6'` | Active state color |
|
|
129
|
+
|
|
130
|
+
### `useParticleTheme()`
|
|
131
|
+
|
|
132
|
+
Hook to access theme state (must be within `<ParticleProvider>`).
|
|
133
|
+
|
|
134
|
+
```ts
|
|
135
|
+
const { themeId, isDark, setTheme, setDark } = useParticleTheme();
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Theme Objects
|
|
139
|
+
|
|
140
|
+
Access individual theme configs:
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
import { starlineTheme, particleThemes, getThemeById } from '@xdy-npm/react-particle-backgrounds';
|
|
144
|
+
|
|
145
|
+
const theme = getThemeById('snow');
|
|
146
|
+
const options = theme.options(true); // get tsparticles config for dark mode
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Custom Themes
|
|
150
|
+
|
|
151
|
+
You can create your own theme and pass it directly:
|
|
152
|
+
|
|
153
|
+
```tsx
|
|
154
|
+
import type { ParticleTheme } from '@xdy-npm/react-particle-backgrounds';
|
|
155
|
+
import { baseConfig } from '@xdy-npm/react-particle-backgrounds';
|
|
156
|
+
|
|
157
|
+
const myTheme: ParticleTheme = {
|
|
158
|
+
id: 'custom',
|
|
159
|
+
name: 'My Theme',
|
|
160
|
+
icon: '🎨',
|
|
161
|
+
description: 'A custom particle theme',
|
|
162
|
+
options: (isDark) => ({
|
|
163
|
+
...baseConfig,
|
|
164
|
+
particles: {
|
|
165
|
+
color: { value: isDark ? '#ffffff' : '#000000' },
|
|
166
|
+
number: { value: 50 },
|
|
167
|
+
move: { enable: true, speed: 2 },
|
|
168
|
+
shape: { type: 'circle' },
|
|
169
|
+
size: { value: 3 },
|
|
170
|
+
},
|
|
171
|
+
}),
|
|
172
|
+
};
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## License
|
|
176
|
+
|
|
177
|
+
MIT
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ISourceOptions, Container } from '@tsparticles/engine';
|
|
3
|
+
|
|
4
|
+
interface ParticleTheme {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
icon: string;
|
|
8
|
+
description: string;
|
|
9
|
+
/** Whether this theme uses Three.js instead of tsparticles */
|
|
10
|
+
isThreeJS?: boolean;
|
|
11
|
+
/** Returns tsparticles config for the given dark mode state */
|
|
12
|
+
options: (isDark: boolean) => ISourceOptions;
|
|
13
|
+
/** Solid background color */
|
|
14
|
+
backgroundColor?: string;
|
|
15
|
+
/** CSS gradient background */
|
|
16
|
+
backgroundGradient?: string;
|
|
17
|
+
}
|
|
18
|
+
type ThemeId = 'starline' | 'snow' | 'bubble' | 'stars' | 'firefly' | 'geometry' | 'wave' | 'none';
|
|
19
|
+
|
|
20
|
+
interface ParticlesBackgroundProps {
|
|
21
|
+
/**
|
|
22
|
+
* Theme ID to display. If used inside a `<ParticleProvider>`,
|
|
23
|
+
* this is optional and the provider's theme will be used.
|
|
24
|
+
*/
|
|
25
|
+
theme?: ThemeId | string;
|
|
26
|
+
/** Dark mode toggle — affects particle colors for supported themes */
|
|
27
|
+
isDark?: boolean;
|
|
28
|
+
/** Callback when particles finish loading */
|
|
29
|
+
onLoaded?: (container?: Container) => void;
|
|
30
|
+
/** Custom CSS class */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** Custom inline styles */
|
|
33
|
+
style?: React.CSSProperties;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Renders a full-screen particle background.
|
|
37
|
+
*
|
|
38
|
+
* Can be used standalone with props:
|
|
39
|
+
* ```tsx
|
|
40
|
+
* <ParticlesBackground theme="starline" isDark />
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* Or inside a `<ParticleProvider>` for shared state:
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <ParticleProvider defaultTheme="snow">
|
|
46
|
+
* <ParticlesBackground />
|
|
47
|
+
* </ParticleProvider>
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
declare const ParticlesBackground: React.FC<ParticlesBackgroundProps>;
|
|
51
|
+
|
|
52
|
+
interface ThemeSelectorProps {
|
|
53
|
+
/** Position on screen */
|
|
54
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
55
|
+
/** Accent color for active states */
|
|
56
|
+
accentColor?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A floating theme selector button + drawer panel.
|
|
60
|
+
* Must be used inside a `<ParticleProvider>`.
|
|
61
|
+
*
|
|
62
|
+
* ```tsx
|
|
63
|
+
* <ParticleProvider>
|
|
64
|
+
* <ParticlesBackground />
|
|
65
|
+
* <ThemeSelector />
|
|
66
|
+
* </ParticleProvider>
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
declare const ThemeSelector: React.FC<ThemeSelectorProps>;
|
|
70
|
+
|
|
71
|
+
interface ParticleWaveProps {
|
|
72
|
+
/** CSS gradient or solid background behind the wave */
|
|
73
|
+
background?: string;
|
|
74
|
+
className?: string;
|
|
75
|
+
style?: React.CSSProperties;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 3D particle ocean wave rendered with Three.js.
|
|
79
|
+
* Three.js is loaded dynamically — if not installed, this component renders nothing.
|
|
80
|
+
*/
|
|
81
|
+
declare const ParticleWave: React.FC<ParticleWaveProps>;
|
|
82
|
+
|
|
83
|
+
interface ParticleContextValue {
|
|
84
|
+
themeId: string;
|
|
85
|
+
isDark: boolean;
|
|
86
|
+
setTheme: (id: string) => void;
|
|
87
|
+
setDark: (dark: boolean) => void;
|
|
88
|
+
}
|
|
89
|
+
interface ParticleProviderProps {
|
|
90
|
+
/** Initial/default theme ID */
|
|
91
|
+
defaultTheme?: ThemeId | string;
|
|
92
|
+
/** Whether to use dark mode particle colors */
|
|
93
|
+
isDark?: boolean;
|
|
94
|
+
/** Persist theme selection to localStorage */
|
|
95
|
+
persist?: boolean;
|
|
96
|
+
children: React.ReactNode;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Provides particle theme state to child components.
|
|
100
|
+
* Wrap your app (or a subtree) with this provider to use
|
|
101
|
+
* `<ParticlesBackground />` and `<ThemeSelector />` without explicit props.
|
|
102
|
+
*/
|
|
103
|
+
declare const ParticleProvider: React.FC<ParticleProviderProps>;
|
|
104
|
+
/** Access the current particle theme context. Must be used within a `<ParticleProvider>`. */
|
|
105
|
+
declare const useParticleTheme: () => ParticleContextValue;
|
|
106
|
+
|
|
107
|
+
declare const baseConfig: Partial<ISourceOptions>;
|
|
108
|
+
/** Default accent colors used by themes that support multi-color particles */
|
|
109
|
+
declare const DEFAULT_COLORS: string[];
|
|
110
|
+
|
|
111
|
+
declare const starlineTheme: ParticleTheme;
|
|
112
|
+
|
|
113
|
+
declare const snowTheme: ParticleTheme;
|
|
114
|
+
|
|
115
|
+
declare const bubbleTheme: ParticleTheme;
|
|
116
|
+
|
|
117
|
+
declare const starsTheme: ParticleTheme;
|
|
118
|
+
|
|
119
|
+
declare const fireflyTheme: ParticleTheme;
|
|
120
|
+
|
|
121
|
+
declare const geometryTheme: ParticleTheme;
|
|
122
|
+
|
|
123
|
+
declare const waveTheme: ParticleTheme;
|
|
124
|
+
|
|
125
|
+
/** All built-in particle themes (excludes "none") */
|
|
126
|
+
declare const particleThemes: ParticleTheme[];
|
|
127
|
+
/** Get a theme by its ID. Falls back to starline if not found. */
|
|
128
|
+
declare const getThemeById: (id: string) => ParticleTheme;
|
|
129
|
+
declare const DEFAULT_THEME_ID = "starline";
|
|
130
|
+
|
|
131
|
+
export { DEFAULT_COLORS, DEFAULT_THEME_ID, ParticleProvider, type ParticleProviderProps, type ParticleTheme, ParticleWave, ParticlesBackground, type ParticlesBackgroundProps, type ThemeId, ThemeSelector, type ThemeSelectorProps, baseConfig, bubbleTheme, fireflyTheme, geometryTheme, getThemeById, particleThemes, snowTheme, starlineTheme, starsTheme, useParticleTheme, waveTheme };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ISourceOptions, Container } from '@tsparticles/engine';
|
|
3
|
+
|
|
4
|
+
interface ParticleTheme {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
icon: string;
|
|
8
|
+
description: string;
|
|
9
|
+
/** Whether this theme uses Three.js instead of tsparticles */
|
|
10
|
+
isThreeJS?: boolean;
|
|
11
|
+
/** Returns tsparticles config for the given dark mode state */
|
|
12
|
+
options: (isDark: boolean) => ISourceOptions;
|
|
13
|
+
/** Solid background color */
|
|
14
|
+
backgroundColor?: string;
|
|
15
|
+
/** CSS gradient background */
|
|
16
|
+
backgroundGradient?: string;
|
|
17
|
+
}
|
|
18
|
+
type ThemeId = 'starline' | 'snow' | 'bubble' | 'stars' | 'firefly' | 'geometry' | 'wave' | 'none';
|
|
19
|
+
|
|
20
|
+
interface ParticlesBackgroundProps {
|
|
21
|
+
/**
|
|
22
|
+
* Theme ID to display. If used inside a `<ParticleProvider>`,
|
|
23
|
+
* this is optional and the provider's theme will be used.
|
|
24
|
+
*/
|
|
25
|
+
theme?: ThemeId | string;
|
|
26
|
+
/** Dark mode toggle — affects particle colors for supported themes */
|
|
27
|
+
isDark?: boolean;
|
|
28
|
+
/** Callback when particles finish loading */
|
|
29
|
+
onLoaded?: (container?: Container) => void;
|
|
30
|
+
/** Custom CSS class */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** Custom inline styles */
|
|
33
|
+
style?: React.CSSProperties;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Renders a full-screen particle background.
|
|
37
|
+
*
|
|
38
|
+
* Can be used standalone with props:
|
|
39
|
+
* ```tsx
|
|
40
|
+
* <ParticlesBackground theme="starline" isDark />
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* Or inside a `<ParticleProvider>` for shared state:
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <ParticleProvider defaultTheme="snow">
|
|
46
|
+
* <ParticlesBackground />
|
|
47
|
+
* </ParticleProvider>
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
declare const ParticlesBackground: React.FC<ParticlesBackgroundProps>;
|
|
51
|
+
|
|
52
|
+
interface ThemeSelectorProps {
|
|
53
|
+
/** Position on screen */
|
|
54
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
55
|
+
/** Accent color for active states */
|
|
56
|
+
accentColor?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A floating theme selector button + drawer panel.
|
|
60
|
+
* Must be used inside a `<ParticleProvider>`.
|
|
61
|
+
*
|
|
62
|
+
* ```tsx
|
|
63
|
+
* <ParticleProvider>
|
|
64
|
+
* <ParticlesBackground />
|
|
65
|
+
* <ThemeSelector />
|
|
66
|
+
* </ParticleProvider>
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
declare const ThemeSelector: React.FC<ThemeSelectorProps>;
|
|
70
|
+
|
|
71
|
+
interface ParticleWaveProps {
|
|
72
|
+
/** CSS gradient or solid background behind the wave */
|
|
73
|
+
background?: string;
|
|
74
|
+
className?: string;
|
|
75
|
+
style?: React.CSSProperties;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 3D particle ocean wave rendered with Three.js.
|
|
79
|
+
* Three.js is loaded dynamically — if not installed, this component renders nothing.
|
|
80
|
+
*/
|
|
81
|
+
declare const ParticleWave: React.FC<ParticleWaveProps>;
|
|
82
|
+
|
|
83
|
+
interface ParticleContextValue {
|
|
84
|
+
themeId: string;
|
|
85
|
+
isDark: boolean;
|
|
86
|
+
setTheme: (id: string) => void;
|
|
87
|
+
setDark: (dark: boolean) => void;
|
|
88
|
+
}
|
|
89
|
+
interface ParticleProviderProps {
|
|
90
|
+
/** Initial/default theme ID */
|
|
91
|
+
defaultTheme?: ThemeId | string;
|
|
92
|
+
/** Whether to use dark mode particle colors */
|
|
93
|
+
isDark?: boolean;
|
|
94
|
+
/** Persist theme selection to localStorage */
|
|
95
|
+
persist?: boolean;
|
|
96
|
+
children: React.ReactNode;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Provides particle theme state to child components.
|
|
100
|
+
* Wrap your app (or a subtree) with this provider to use
|
|
101
|
+
* `<ParticlesBackground />` and `<ThemeSelector />` without explicit props.
|
|
102
|
+
*/
|
|
103
|
+
declare const ParticleProvider: React.FC<ParticleProviderProps>;
|
|
104
|
+
/** Access the current particle theme context. Must be used within a `<ParticleProvider>`. */
|
|
105
|
+
declare const useParticleTheme: () => ParticleContextValue;
|
|
106
|
+
|
|
107
|
+
declare const baseConfig: Partial<ISourceOptions>;
|
|
108
|
+
/** Default accent colors used by themes that support multi-color particles */
|
|
109
|
+
declare const DEFAULT_COLORS: string[];
|
|
110
|
+
|
|
111
|
+
declare const starlineTheme: ParticleTheme;
|
|
112
|
+
|
|
113
|
+
declare const snowTheme: ParticleTheme;
|
|
114
|
+
|
|
115
|
+
declare const bubbleTheme: ParticleTheme;
|
|
116
|
+
|
|
117
|
+
declare const starsTheme: ParticleTheme;
|
|
118
|
+
|
|
119
|
+
declare const fireflyTheme: ParticleTheme;
|
|
120
|
+
|
|
121
|
+
declare const geometryTheme: ParticleTheme;
|
|
122
|
+
|
|
123
|
+
declare const waveTheme: ParticleTheme;
|
|
124
|
+
|
|
125
|
+
/** All built-in particle themes (excludes "none") */
|
|
126
|
+
declare const particleThemes: ParticleTheme[];
|
|
127
|
+
/** Get a theme by its ID. Falls back to starline if not found. */
|
|
128
|
+
declare const getThemeById: (id: string) => ParticleTheme;
|
|
129
|
+
declare const DEFAULT_THEME_ID = "starline";
|
|
130
|
+
|
|
131
|
+
export { DEFAULT_COLORS, DEFAULT_THEME_ID, ParticleProvider, type ParticleProviderProps, type ParticleTheme, ParticleWave, ParticlesBackground, type ParticlesBackgroundProps, type ThemeId, ThemeSelector, type ThemeSelectorProps, baseConfig, bubbleTheme, fireflyTheme, geometryTheme, getThemeById, particleThemes, snowTheme, starlineTheme, starsTheme, useParticleTheme, waveTheme };
|