@farzadbagheri/fb-components 0.1.0 → 0.1.3
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 +20 -20
- package/README.md +473 -131
- package/dist/ai.cjs +3 -3
- package/dist/ai.css.map +1 -1
- package/dist/ai.js +1 -1
- package/dist/backgrounds.cjs +7 -7
- package/dist/backgrounds.css.map +1 -1
- package/dist/backgrounds.js +1 -1
- package/dist/buttons.cjs +4 -4
- package/dist/buttons.css.map +1 -1
- package/dist/buttons.js +1 -1
- package/dist/{chunk-MKCSRMHF.cjs → chunk-4YAFXF3T.cjs} +2 -2
- package/dist/chunk-4YAFXF3T.cjs.map +1 -0
- package/dist/{chunk-CTD2GDO6.cjs → chunk-B5HDPUQK.cjs} +2 -2
- package/dist/chunk-B5HDPUQK.cjs.map +1 -0
- package/dist/{chunk-K5QRX5CZ.js → chunk-ENCZZRVK.js} +2 -2
- package/dist/chunk-ENCZZRVK.js.map +1 -0
- package/dist/{chunk-H6Y3EJPA.cjs → chunk-F4XFUSPM.cjs} +2 -2
- package/dist/chunk-F4XFUSPM.cjs.map +1 -0
- package/dist/{chunk-4FWJRWS5.cjs → chunk-HPWZ5OL2.cjs} +2 -2
- package/dist/chunk-HPWZ5OL2.cjs.map +1 -0
- package/dist/{chunk-JHOJY54P.js → chunk-HSY72AJ4.js} +2 -2
- package/dist/chunk-HSY72AJ4.js.map +1 -0
- package/dist/{chunk-R2F3FTBL.js → chunk-IZJHBS5M.js} +2 -2
- package/dist/chunk-IZJHBS5M.js.map +1 -0
- package/dist/{chunk-T7CC3CLH.js → chunk-J4ZYYB2O.js} +2 -2
- package/dist/chunk-J4ZYYB2O.js.map +1 -0
- package/dist/{chunk-C3ASXASL.cjs → chunk-MWSE4C6T.cjs} +2 -2
- package/dist/chunk-MWSE4C6T.cjs.map +1 -0
- package/dist/{chunk-WDUETPNG.js → chunk-O2FP27HX.js} +2 -2
- package/dist/chunk-O2FP27HX.js.map +1 -0
- package/dist/{chunk-ROKPXWY2.cjs → chunk-QTX5BFS6.cjs} +2 -2
- package/dist/chunk-QTX5BFS6.cjs.map +1 -0
- package/dist/{chunk-YQSTEIU5.js → chunk-RFI4526D.js} +2 -2
- package/dist/chunk-RFI4526D.js.map +1 -0
- package/dist/{chunk-H2AV67DY.cjs → chunk-SQPNHJ6D.cjs} +2 -2
- package/dist/chunk-SQPNHJ6D.cjs.map +1 -0
- package/dist/{chunk-BSEOOGOV.cjs → chunk-SS4GAAED.cjs} +2 -2
- package/dist/chunk-SS4GAAED.cjs.map +1 -0
- package/dist/{chunk-UWQ5QNE3.cjs → chunk-TG7XM34D.cjs} +2 -2
- package/dist/chunk-TG7XM34D.cjs.map +1 -0
- package/dist/{chunk-EIE6FLCL.js → chunk-VODRAWMB.js} +2 -2
- package/dist/chunk-VODRAWMB.js.map +1 -0
- package/dist/{chunk-RUSFF3MZ.js → chunk-XJGKXWK3.js} +2 -2
- package/dist/chunk-XJGKXWK3.js.map +1 -0
- package/dist/{chunk-JWV3IITG.js → chunk-YPBGV2B5.js} +2 -2
- package/dist/chunk-YPBGV2B5.js.map +1 -0
- package/dist/data.cjs +4 -4
- package/dist/data.css.map +1 -1
- package/dist/data.js +1 -1
- package/dist/heroes.cjs +2 -2
- package/dist/heroes.css.map +1 -1
- package/dist/heroes.js +1 -1
- package/dist/index.cjs +31 -31
- package/dist/index.css.map +1 -1
- package/dist/index.js +9 -9
- package/dist/landing.cjs +2 -2
- package/dist/landing.css.map +1 -1
- package/dist/landing.js +1 -1
- package/dist/motion.cjs +3 -3
- package/dist/motion.css.map +1 -1
- package/dist/motion.js +1 -1
- package/dist/text.cjs +3 -3
- package/dist/text.css.map +1 -1
- package/dist/text.js +1 -1
- package/dist/ui.cjs +3 -3
- package/dist/ui.css.map +1 -1
- package/dist/ui.js +1 -1
- package/package.json +140 -134
- package/dist/chunk-4FWJRWS5.cjs.map +0 -1
- package/dist/chunk-BSEOOGOV.cjs.map +0 -1
- package/dist/chunk-C3ASXASL.cjs.map +0 -1
- package/dist/chunk-CTD2GDO6.cjs.map +0 -1
- package/dist/chunk-EIE6FLCL.js.map +0 -1
- package/dist/chunk-H2AV67DY.cjs.map +0 -1
- package/dist/chunk-H6Y3EJPA.cjs.map +0 -1
- package/dist/chunk-JHOJY54P.js.map +0 -1
- package/dist/chunk-JWV3IITG.js.map +0 -1
- package/dist/chunk-K5QRX5CZ.js.map +0 -1
- package/dist/chunk-MKCSRMHF.cjs.map +0 -1
- package/dist/chunk-R2F3FTBL.js.map +0 -1
- package/dist/chunk-ROKPXWY2.cjs.map +0 -1
- package/dist/chunk-RUSFF3MZ.js.map +0 -1
- package/dist/chunk-T7CC3CLH.js.map +0 -1
- package/dist/chunk-UWQ5QNE3.cjs.map +0 -1
- package/dist/chunk-WDUETPNG.js.map +0 -1
- package/dist/chunk-YQSTEIU5.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Farzad Bagheri
|
|
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
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Farzad Bagheri
|
|
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
21
|
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,131 +1,473 @@
|
|
|
1
|
-
FB Components
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
import
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
1
|
+
# FB Components
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@farzadbagheri/fb-components)
|
|
4
|
+
[](https://www.npmjs.com/package/@farzadbagheri/fb-components)
|
|
5
|
+
[](./LICENSE)
|
|
6
|
+
[](https://react.dev/)
|
|
7
|
+
[](https://www.typescriptlang.org/)
|
|
8
|
+
|
|
9
|
+
**Production-minded React components for motion, AI interfaces, data visualization, and modern product experiences.**
|
|
10
|
+
|
|
11
|
+
FB Components is a modern React component library built for polished product interfaces. It includes reusable components with TypeScript declarations, ESM/CommonJS builds, category-based entry points, and category-specific CSS so you can import only what you need.
|
|
12
|
+
|
|
13
|
+
- **npm:** `@farzadbagheri/fb-components`
|
|
14
|
+
- **Current release:** `0.1.0`
|
|
15
|
+
- **Website:** https://farzadbagheri.fr/en/components
|
|
16
|
+
- **GitHub:** https://github.com/BAGHERIFarzad/fb-components
|
|
17
|
+
- **License:** MIT
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Highlights
|
|
22
|
+
|
|
23
|
+
- 22 free React components
|
|
24
|
+
- React 18 and React 19 support
|
|
25
|
+
- TypeScript declarations included
|
|
26
|
+
- ESM and CommonJS builds
|
|
27
|
+
- Tree-shaking-friendly JavaScript exports
|
|
28
|
+
- Category-based imports
|
|
29
|
+
- Category-specific CSS exports
|
|
30
|
+
- Root convenience import
|
|
31
|
+
- Modern UI, motion, AI, data, hero, landing, and background components
|
|
32
|
+
- Simple installation and CSS setup
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install @farzadbagheri/fb-components
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Requirements:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
React >=18 <20
|
|
46
|
+
React DOM >=18 <20
|
|
47
|
+
Node >=18
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`lucide-react` is installed automatically as a package dependency.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Recommended usage
|
|
55
|
+
|
|
56
|
+
For the smallest CSS footprint, import from a category entry point:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import { GlowButton } from "@farzadbagheri/fb-components/buttons";
|
|
60
|
+
import "@farzadbagheri/fb-components/buttons.css";
|
|
61
|
+
|
|
62
|
+
export function Example() {
|
|
63
|
+
return <GlowButton>Launch</GlowButton>;
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This is the recommended pattern when you only need components from one category.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Convenience usage
|
|
72
|
+
|
|
73
|
+
You can also import from the root package:
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { GlowButton } from "@farzadbagheri/fb-components";
|
|
77
|
+
import "@farzadbagheri/fb-components/styles.css";
|
|
78
|
+
|
|
79
|
+
export function Example() {
|
|
80
|
+
return <GlowButton>Launch</GlowButton>;
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The root JavaScript entry remains tree-shaking friendly, while `styles.css` includes the complete stylesheet bundle.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Components
|
|
89
|
+
|
|
90
|
+
### Backgrounds
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
import {
|
|
94
|
+
PredictiveArc,
|
|
95
|
+
SignalParticles,
|
|
96
|
+
DotMatrix,
|
|
97
|
+
GradientMesh,
|
|
98
|
+
AuroraGrid,
|
|
99
|
+
NoiseField
|
|
100
|
+
} from "@farzadbagheri/fb-components/backgrounds";
|
|
101
|
+
|
|
102
|
+
import "@farzadbagheri/fb-components/backgrounds.css";
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Available components:
|
|
106
|
+
|
|
107
|
+
- `PredictiveArc`
|
|
108
|
+
- `SignalParticles`
|
|
109
|
+
- `DotMatrix`
|
|
110
|
+
- `GradientMesh`
|
|
111
|
+
- `AuroraGrid`
|
|
112
|
+
- `NoiseField`
|
|
113
|
+
|
|
114
|
+
### Buttons
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
import {
|
|
118
|
+
MagneticButton,
|
|
119
|
+
GlowButton,
|
|
120
|
+
GlassButton
|
|
121
|
+
} from "@farzadbagheri/fb-components/buttons";
|
|
122
|
+
|
|
123
|
+
import "@farzadbagheri/fb-components/buttons.css";
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Available components:
|
|
127
|
+
|
|
128
|
+
- `MagneticButton`
|
|
129
|
+
- `GlowButton`
|
|
130
|
+
- `GlassButton`
|
|
131
|
+
|
|
132
|
+
### Text Animation
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
import {
|
|
136
|
+
RevealText,
|
|
137
|
+
BlurReveal
|
|
138
|
+
} from "@farzadbagheri/fb-components/text";
|
|
139
|
+
|
|
140
|
+
import "@farzadbagheri/fb-components/text.css";
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Available components:
|
|
144
|
+
|
|
145
|
+
- `RevealText`
|
|
146
|
+
- `BlurReveal`
|
|
147
|
+
|
|
148
|
+
### UI
|
|
149
|
+
|
|
150
|
+
```tsx
|
|
151
|
+
import {
|
|
152
|
+
SpotlightCard,
|
|
153
|
+
GlassCard
|
|
154
|
+
} from "@farzadbagheri/fb-components/ui";
|
|
155
|
+
|
|
156
|
+
import "@farzadbagheri/fb-components/ui.css";
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Available components:
|
|
160
|
+
|
|
161
|
+
- `SpotlightCard`
|
|
162
|
+
- `GlassCard`
|
|
163
|
+
|
|
164
|
+
### Motion
|
|
165
|
+
|
|
166
|
+
```tsx
|
|
167
|
+
import {
|
|
168
|
+
GlowCursor,
|
|
169
|
+
MagneticCursor
|
|
170
|
+
} from "@farzadbagheri/fb-components/motion";
|
|
171
|
+
|
|
172
|
+
import "@farzadbagheri/fb-components/motion.css";
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Available components:
|
|
176
|
+
|
|
177
|
+
- `GlowCursor`
|
|
178
|
+
- `MagneticCursor`
|
|
179
|
+
|
|
180
|
+
### AI
|
|
181
|
+
|
|
182
|
+
```tsx
|
|
183
|
+
import {
|
|
184
|
+
AiPromptBox,
|
|
185
|
+
StreamingResponse
|
|
186
|
+
} from "@farzadbagheri/fb-components/ai";
|
|
187
|
+
|
|
188
|
+
import "@farzadbagheri/fb-components/ai.css";
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Available components:
|
|
192
|
+
|
|
193
|
+
- `AiPromptBox`
|
|
194
|
+
- `StreamingResponse`
|
|
195
|
+
|
|
196
|
+
### Heroes
|
|
197
|
+
|
|
198
|
+
```tsx
|
|
199
|
+
import { SaasLaunchHero } from "@farzadbagheri/fb-components/heroes";
|
|
200
|
+
import "@farzadbagheri/fb-components/heroes.css";
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Available component:
|
|
204
|
+
|
|
205
|
+
- `SaasLaunchHero`
|
|
206
|
+
|
|
207
|
+
### Landing Pages
|
|
208
|
+
|
|
209
|
+
```tsx
|
|
210
|
+
import { StartupLanding } from "@farzadbagheri/fb-components/landing";
|
|
211
|
+
import "@farzadbagheri/fb-components/landing.css";
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Available component:
|
|
215
|
+
|
|
216
|
+
- `StartupLanding`
|
|
217
|
+
|
|
218
|
+
### Data
|
|
219
|
+
|
|
220
|
+
```tsx
|
|
221
|
+
import {
|
|
222
|
+
AnimatedCounter,
|
|
223
|
+
RadialProgress,
|
|
224
|
+
MetricGrid
|
|
225
|
+
} from "@farzadbagheri/fb-components/data";
|
|
226
|
+
|
|
227
|
+
import "@farzadbagheri/fb-components/data.css";
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Available components:
|
|
231
|
+
|
|
232
|
+
- `AnimatedCounter`
|
|
233
|
+
- `RadialProgress`
|
|
234
|
+
- `MetricGrid`
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## All root exports
|
|
239
|
+
|
|
240
|
+
The root entry exports all 22 free components:
|
|
241
|
+
|
|
242
|
+
```tsx
|
|
243
|
+
import {
|
|
244
|
+
AiPromptBox,
|
|
245
|
+
AnimatedCounter,
|
|
246
|
+
AuroraGrid,
|
|
247
|
+
BlurReveal,
|
|
248
|
+
DotMatrix,
|
|
249
|
+
GlassButton,
|
|
250
|
+
GlassCard,
|
|
251
|
+
GlowButton,
|
|
252
|
+
GlowCursor,
|
|
253
|
+
GradientMesh,
|
|
254
|
+
MagneticButton,
|
|
255
|
+
MagneticCursor,
|
|
256
|
+
MetricGrid,
|
|
257
|
+
NoiseField,
|
|
258
|
+
PredictiveArc,
|
|
259
|
+
RadialProgress,
|
|
260
|
+
RevealText,
|
|
261
|
+
SaasLaunchHero,
|
|
262
|
+
SignalParticles,
|
|
263
|
+
SpotlightCard,
|
|
264
|
+
StartupLanding,
|
|
265
|
+
StreamingResponse
|
|
266
|
+
} from "@farzadbagheri/fb-components";
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Package entry points
|
|
272
|
+
|
|
273
|
+
| Category | JavaScript import | CSS import |
|
|
274
|
+
|---|---|---|
|
|
275
|
+
| Root | `@farzadbagheri/fb-components` | `@farzadbagheri/fb-components/styles.css` |
|
|
276
|
+
| Backgrounds | `@farzadbagheri/fb-components/backgrounds` | `@farzadbagheri/fb-components/backgrounds.css` |
|
|
277
|
+
| Buttons | `@farzadbagheri/fb-components/buttons` | `@farzadbagheri/fb-components/buttons.css` |
|
|
278
|
+
| Text | `@farzadbagheri/fb-components/text` | `@farzadbagheri/fb-components/text.css` |
|
|
279
|
+
| UI | `@farzadbagheri/fb-components/ui` | `@farzadbagheri/fb-components/ui.css` |
|
|
280
|
+
| Motion | `@farzadbagheri/fb-components/motion` | `@farzadbagheri/fb-components/motion.css` |
|
|
281
|
+
| AI | `@farzadbagheri/fb-components/ai` | `@farzadbagheri/fb-components/ai.css` |
|
|
282
|
+
| Heroes | `@farzadbagheri/fb-components/heroes` | `@farzadbagheri/fb-components/heroes.css` |
|
|
283
|
+
| Landing | `@farzadbagheri/fb-components/landing` | `@farzadbagheri/fb-components/landing.css` |
|
|
284
|
+
| Data | `@farzadbagheri/fb-components/data` | `@farzadbagheri/fb-components/data.css` |
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## CSS strategy
|
|
289
|
+
|
|
290
|
+
FB Components does **not** automatically inject the complete stylesheet when you import JavaScript.
|
|
291
|
+
|
|
292
|
+
### Category CSS — recommended
|
|
293
|
+
|
|
294
|
+
```tsx
|
|
295
|
+
import { GlowButton } from "@farzadbagheri/fb-components/buttons";
|
|
296
|
+
import "@farzadbagheri/fb-components/buttons.css";
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Use this when you want a smaller CSS footprint.
|
|
300
|
+
|
|
301
|
+
### Full stylesheet
|
|
302
|
+
|
|
303
|
+
```tsx
|
|
304
|
+
import { GlowButton } from "@farzadbagheri/fb-components";
|
|
305
|
+
import "@farzadbagheri/fb-components/styles.css";
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Use this when you prefer convenience or are using components across several categories.
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## TypeScript
|
|
313
|
+
|
|
314
|
+
Type declarations are included with the package. No separate `@types` package is required.
|
|
315
|
+
|
|
316
|
+
```tsx
|
|
317
|
+
import { RadialProgress } from "@farzadbagheri/fb-components/data";
|
|
318
|
+
import "@farzadbagheri/fb-components/data.css";
|
|
319
|
+
|
|
320
|
+
export function ProgressExample() {
|
|
321
|
+
return <RadialProgress value={72} />;
|
|
322
|
+
}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## ESM and CommonJS
|
|
328
|
+
|
|
329
|
+
### ESM
|
|
330
|
+
|
|
331
|
+
```ts
|
|
332
|
+
import { GlowButton } from "@farzadbagheri/fb-components/buttons";
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### CommonJS
|
|
336
|
+
|
|
337
|
+
```js
|
|
338
|
+
const { GlowButton } = require("@farzadbagheri/fb-components/buttons");
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Tree shaking
|
|
344
|
+
|
|
345
|
+
FB Components is built with category entry points and tree-shaking-friendly JavaScript output.
|
|
346
|
+
|
|
347
|
+
For performance-oriented applications, prefer:
|
|
348
|
+
|
|
349
|
+
```tsx
|
|
350
|
+
import { GlowButton } from "@farzadbagheri/fb-components/buttons";
|
|
351
|
+
import "@farzadbagheri/fb-components/buttons.css";
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
This avoids importing unrelated category CSS.
|
|
355
|
+
|
|
356
|
+
The root JavaScript entry can still be tree-shaken by modern bundlers, while the root stylesheet intentionally contains styles for all categories.
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Example: AI interface
|
|
361
|
+
|
|
362
|
+
```tsx
|
|
363
|
+
import {
|
|
364
|
+
AiPromptBox,
|
|
365
|
+
StreamingResponse
|
|
366
|
+
} from "@farzadbagheri/fb-components/ai";
|
|
367
|
+
|
|
368
|
+
import "@farzadbagheri/fb-components/ai.css";
|
|
369
|
+
|
|
370
|
+
export function AiExample() {
|
|
371
|
+
return (
|
|
372
|
+
<div>
|
|
373
|
+
<AiPromptBox />
|
|
374
|
+
<StreamingResponse />
|
|
375
|
+
</div>
|
|
376
|
+
);
|
|
377
|
+
}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Documentation and live previews
|
|
383
|
+
|
|
384
|
+
Explore the component catalog, live previews, installation guidance, and additional examples:
|
|
385
|
+
|
|
386
|
+
https://farzadbagheri.fr/en/components
|
|
387
|
+
|
|
388
|
+
French component pages:
|
|
389
|
+
|
|
390
|
+
https://farzadbagheri.fr/fr/composants
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
394
|
+
## MCP
|
|
395
|
+
|
|
396
|
+
FB Components also has an MCP-oriented component discovery experience in the wider FB Components platform, allowing compatible AI tooling to discover component metadata and source availability.
|
|
397
|
+
|
|
398
|
+
Documentation:
|
|
399
|
+
|
|
400
|
+
https://farzadbagheri.fr/en/components/mcp
|
|
401
|
+
|
|
402
|
+
The npm package itself remains a standard React package and does not require MCP to use the components.
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## Free and Pro components
|
|
407
|
+
|
|
408
|
+
The npm package currently contains the **22 free components** listed in this README.
|
|
409
|
+
|
|
410
|
+
The wider FB Components catalog may also display Pro components. Pro source code is not included in the public npm package.
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## Versioning
|
|
415
|
+
|
|
416
|
+
FB Components currently follows pre-1.0 semantic versioning:
|
|
417
|
+
|
|
418
|
+
```text
|
|
419
|
+
0.1.x → patches and fixes
|
|
420
|
+
0.2.0 → new public features/components or meaningful API expansion
|
|
421
|
+
1.0.0 → stable public API milestone
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
Release history:
|
|
425
|
+
|
|
426
|
+
https://github.com/BAGHERIFarzad/fb-components/releases
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## Contributing
|
|
431
|
+
|
|
432
|
+
Issues, bug reports, ideas, and feedback are welcome:
|
|
433
|
+
|
|
434
|
+
https://github.com/BAGHERIFarzad/fb-components/issues
|
|
435
|
+
|
|
436
|
+
When reporting a problem, please include:
|
|
437
|
+
|
|
438
|
+
- component name
|
|
439
|
+
- React version
|
|
440
|
+
- package version
|
|
441
|
+
- reproduction steps
|
|
442
|
+
- expected behavior
|
|
443
|
+
- actual behavior
|
|
444
|
+
- a minimal reproduction when possible
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
## Security
|
|
449
|
+
|
|
450
|
+
Please do not publish secrets, credentials, tokens, or private application data in public issues.
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
## License
|
|
455
|
+
|
|
456
|
+
MIT © 2026 Farzad Bagheri.
|
|
457
|
+
|
|
458
|
+
See [LICENSE](./LICENSE).
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
## Links
|
|
463
|
+
|
|
464
|
+
- **Website:** https://farzadbagheri.fr/en/components
|
|
465
|
+
- **npm:** https://www.npmjs.com/package/@farzadbagheri/fb-components
|
|
466
|
+
- **GitHub:** https://github.com/BAGHERIFarzad/fb-components
|
|
467
|
+
- **Releases:** https://github.com/BAGHERIFarzad/fb-components/releases
|
|
468
|
+
- **Issues:** https://github.com/BAGHERIFarzad/fb-components/issues
|
|
469
|
+
- **MCP docs:** https://farzadbagheri.fr/en/components/mcp
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
Built for modern React product experiences.
|
package/dist/ai.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkSS4GAAED_cjs = require('./chunk-SS4GAAED.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "AiPromptBox", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkSS4GAAED_cjs.AiPromptBox; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "StreamingResponse", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkSS4GAAED_cjs.StreamingResponse; }
|
|
14
14
|
});
|
|
15
15
|
//# sourceMappingURL=ai.cjs.map
|
|
16
16
|
//# sourceMappingURL=ai.cjs.map
|