ultra-image-uploader 2.0.4 → 3.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.
package/README.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
A modern,
|
|
5
|
+
A modern, production-ready React image upload component with shadcn/ui-inspired design, beautiful themes, and smooth animations.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/ultra-image-uploader)
|
|
8
8
|

|
|
9
9
|
[](https://opensource.org/licenses/MIT)
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**shadcn/ui Design** • **3 Themes** • **ImgBB & Cloudinary** • **Customizable**
|
|
12
12
|
|
|
13
13
|
</div>
|
|
14
14
|
|
|
@@ -16,19 +16,18 @@ A modern, fancy React image upload component with responsive grid layout, beauti
|
|
|
16
16
|
|
|
17
17
|
## Features
|
|
18
18
|
|
|
19
|
-
- **Modern UI** -
|
|
20
|
-
- **5 Built-in Themes** - Modern, Fresh,
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **Smooth Animations** - Hover effects, fade transitions, scale animations
|
|
19
|
+
- **Modern UI** - Clean, minimal shadcn/ui-inspired design
|
|
20
|
+
- **5 Built-in Themes** - Nature, Modern, Fresh, Dark (gradient), Ocean (blue gradient)
|
|
21
|
+
- **Drag & Drop** - Beautiful drag-and-drop with smooth animations
|
|
22
|
+
- **Live Previews** - Responsive grid with image thumbnails
|
|
23
|
+
- **Progress Tracking** - Real-time upload progress with visual feedback
|
|
24
|
+
- **Remove Images** - Easy removal in both create and update modes
|
|
26
25
|
- **Custom Themes** - Create your own theme with custom colors
|
|
27
|
-
- **Keyboard Accessible** - Full keyboard navigation support
|
|
28
|
-
- **File Validation** - Size and type validation
|
|
29
26
|
- **Multiple Providers** - ImgBB & Cloudinary support
|
|
27
|
+
- **File Validation** - Size, type, and count validation
|
|
28
|
+
- **Accessible** - Keyboard navigation and ARIA support
|
|
30
29
|
- **Auto Import** - Works with VS Code, WebStorm, and all editors
|
|
31
|
-
- **
|
|
30
|
+
- **Customization API** - Border radius, preview size (xs to 2xl), show/hide elements
|
|
32
31
|
|
|
33
32
|
## Installation
|
|
34
33
|
|
|
@@ -69,298 +68,454 @@ function App() {
|
|
|
69
68
|
|
|
70
69
|
| Prop | Type | Default | Description |
|
|
71
70
|
|------|------|---------|-------------|
|
|
71
|
+
| **Core** |
|
|
72
72
|
| `images` | `File[]` | **Required** | Selected image files |
|
|
73
73
|
| `setImages` | `(files: File[]) => void` | **Required** | Update images state |
|
|
74
|
+
| **Mode** |
|
|
74
75
|
| `mode` | `'add' \| 'update'` | `'add'` | Upload mode |
|
|
75
76
|
| `defaultImages` | `string[]` | `[]` | Default images (update mode) |
|
|
77
|
+
| **File Constraints** |
|
|
76
78
|
| `multiple` | `boolean` | `true` | Allow multiple files |
|
|
77
79
|
| `maxSize` | `number` | `52428800` | Max file size (50MB) |
|
|
78
80
|
| `allowedTypes` | `string[]` | Image types | Allowed MIME types |
|
|
79
81
|
| `maxImages` | `number` | `20` | Maximum images allowed |
|
|
80
|
-
|
|
|
81
|
-
| `containerClassName` | `string` | `'max-w-5xl mx-auto mt-10'` | Container styling |
|
|
82
|
-
| `theme` | `'modern' \| 'fresh' \| 'nature' \| 'ocean' \| 'sunset'` | `'nature'` | Built-in theme |
|
|
83
|
-
| `customTheme` | `Theme` | `undefined` | Custom theme object |
|
|
84
|
-
| `showThemeSelector` | `boolean` | `true` | Show theme selector buttons |
|
|
85
|
-
| `showImageCount` | `boolean` | `true` | Show image count header |
|
|
86
|
-
| `autoUpload` | `boolean` | `false` | Auto-upload on selection |
|
|
82
|
+
| **Upload** |
|
|
87
83
|
| `uploadConfig` | `{ provider, config }` | `undefined` | Upload configuration |
|
|
84
|
+
| `autoUpload` | `boolean` | `false` | Auto-upload on selection |
|
|
88
85
|
| `onUploadComplete` | `(urls: string[]) => void` | `undefined` | Success callback |
|
|
89
86
|
| `onUploadError` | `(error: Error) => void` | `undefined` | Error callback |
|
|
87
|
+
| **Theme & Styling** |
|
|
88
|
+
| `theme` | `'nature' \| 'modern' \| 'fresh' \| 'dark' \| 'ocean'` | `'nature'` | Built-in theme |
|
|
89
|
+
| `customTheme` | `Theme` | `undefined` | Custom theme object |
|
|
90
|
+
| `showThemeSelector` | `boolean` | `false` | Show theme selector |
|
|
91
|
+
| `borderRadius` | `'none' \| 'sm' \| 'md' \| 'lg' \| 'full'` | `'md'` | Border radius |
|
|
92
|
+
| `previewSize` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl'` | `'lg'` | Upload icon size |
|
|
93
|
+
| `className` | `string` | `''` | Custom class name |
|
|
94
|
+
| `containerClassName` | `string` | `'max-w-5xl mx-auto mt-10'` | Container styling |
|
|
95
|
+
| **UI Toggles** |
|
|
96
|
+
| `showImageCount` | `boolean` | `true` | Show image count badge |
|
|
97
|
+
| `showFileName` | `boolean` | `true` | Show file name under preview |
|
|
98
|
+
| `showFileSize` | `boolean` | `true` | Show file size under preview |
|
|
90
99
|
|
|
91
100
|
## Examples
|
|
92
101
|
|
|
93
102
|
### Basic Usage
|
|
94
103
|
|
|
95
104
|
```tsx
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
105
|
+
import { ImageUploader } from "ultra-image-uploader";
|
|
106
|
+
import { useState } from "react";
|
|
107
|
+
|
|
108
|
+
function BasicExample() {
|
|
109
|
+
const [images, setImages] = useState<File[]>([]);
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<ImageUploader
|
|
113
|
+
images={images}
|
|
114
|
+
setImages={setImages}
|
|
115
|
+
multiple
|
|
116
|
+
/>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
101
119
|
```
|
|
102
120
|
|
|
103
121
|
### Different Themes
|
|
104
122
|
|
|
105
123
|
```tsx
|
|
106
|
-
//
|
|
107
|
-
<ImageUploader
|
|
108
|
-
images={images}
|
|
109
|
-
setImages={setImages}
|
|
110
|
-
theme="modern"
|
|
111
|
-
/>
|
|
124
|
+
// Nature theme (green) - Default
|
|
125
|
+
<ImageUploader theme="nature" images={images} setImages={setImages} />
|
|
112
126
|
|
|
113
|
-
//
|
|
114
|
-
<ImageUploader
|
|
115
|
-
images={images}
|
|
116
|
-
setImages={setImages}
|
|
117
|
-
theme="fresh"
|
|
118
|
-
/>
|
|
127
|
+
// Modern theme (neutral/monochrome)
|
|
128
|
+
<ImageUploader theme="modern" images={images} setImages={setImages} />
|
|
119
129
|
|
|
120
|
-
//
|
|
121
|
-
<ImageUploader
|
|
122
|
-
images={images}
|
|
123
|
-
setImages={setImages}
|
|
124
|
-
theme="nature"
|
|
125
|
-
/>
|
|
130
|
+
// Fresh theme (blue)
|
|
131
|
+
<ImageUploader theme="fresh" images={images} setImages={setImages} />
|
|
126
132
|
|
|
127
|
-
//
|
|
128
|
-
<ImageUploader
|
|
129
|
-
images={images}
|
|
130
|
-
setImages={setImages}
|
|
131
|
-
theme="ocean"
|
|
132
|
-
/>
|
|
133
|
+
// Dark theme (dark gradient with blue accent)
|
|
134
|
+
<ImageUploader theme="dark" images={images} setImages={setImages} />
|
|
133
135
|
|
|
134
|
-
//
|
|
135
|
-
<ImageUploader
|
|
136
|
-
images={images}
|
|
137
|
-
setImages={setImages}
|
|
138
|
-
theme="sunset"
|
|
139
|
-
/>
|
|
136
|
+
// Ocean theme (blue gradient)
|
|
137
|
+
<ImageUploader theme="ocean" images={images} setImages={setImages} />
|
|
140
138
|
```
|
|
141
139
|
|
|
142
|
-
###
|
|
140
|
+
### Upload with ImgBB
|
|
143
141
|
|
|
144
142
|
```tsx
|
|
145
|
-
|
|
146
|
-
const [images, setImages] = useState<File[]>([]);
|
|
143
|
+
import { ImageUploader } from "ultra-image-uploader";
|
|
147
144
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
colors: {
|
|
151
|
-
primary: '#2563eb',
|
|
152
|
-
primaryHover: '#1d4ed8',
|
|
153
|
-
background: 'linear-gradient(135deg, #3b82f6 0%, #1e40af 100%)',
|
|
154
|
-
border: '#dbeafe',
|
|
155
|
-
text: '#1e3a8a',
|
|
156
|
-
textSecondary: '#1e40af',
|
|
157
|
-
cardBg: '#eff6ff',
|
|
158
|
-
cardBorder: '#dbeafe',
|
|
159
|
-
shadow: '0 10px 40px rgba(37, 99, 235, 0.15)',
|
|
160
|
-
},
|
|
161
|
-
};
|
|
145
|
+
function ImgBBUpload() {
|
|
146
|
+
const [images, setImages] = useState<File[]>([]);
|
|
162
147
|
|
|
163
148
|
return (
|
|
164
149
|
<ImageUploader
|
|
165
150
|
images={images}
|
|
166
151
|
setImages={setImages}
|
|
167
|
-
|
|
168
|
-
|
|
152
|
+
multiple
|
|
153
|
+
theme="nature"
|
|
154
|
+
uploadConfig={{
|
|
155
|
+
provider: 'imgbb',
|
|
156
|
+
config: { apiKey: process.env.IMGBB_API_KEY! }
|
|
157
|
+
}}
|
|
158
|
+
onUploadComplete={(urls) => {
|
|
159
|
+
console.log('Uploaded URLs:', urls);
|
|
160
|
+
}}
|
|
161
|
+
onUploadError={(error) => {
|
|
162
|
+
console.error('Upload failed:', error.message);
|
|
163
|
+
}}
|
|
169
164
|
/>
|
|
170
165
|
);
|
|
171
166
|
}
|
|
172
167
|
```
|
|
173
168
|
|
|
174
|
-
###
|
|
169
|
+
### Upload with Cloudinary
|
|
175
170
|
|
|
176
171
|
```tsx
|
|
177
|
-
function
|
|
172
|
+
function CloudinaryUpload() {
|
|
178
173
|
const [images, setImages] = useState<File[]>([]);
|
|
179
174
|
|
|
180
175
|
return (
|
|
181
176
|
<ImageUploader
|
|
182
177
|
images={images}
|
|
183
178
|
setImages={setImages}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
179
|
+
multiple
|
|
180
|
+
theme="fresh"
|
|
181
|
+
uploadConfig={{
|
|
182
|
+
provider: 'cloudinary',
|
|
183
|
+
config: {
|
|
184
|
+
cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME!,
|
|
185
|
+
uploadPreset: process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET!
|
|
186
|
+
}
|
|
187
|
+
}}
|
|
188
|
+
onUploadComplete={(urls) => {
|
|
189
|
+
console.log('Uploaded URLs:', urls);
|
|
190
|
+
}}
|
|
187
191
|
/>
|
|
188
192
|
);
|
|
189
193
|
}
|
|
190
194
|
```
|
|
191
195
|
|
|
192
|
-
###
|
|
196
|
+
### Auto Upload
|
|
193
197
|
|
|
194
198
|
```tsx
|
|
195
|
-
function
|
|
199
|
+
function AutoUploadExample() {
|
|
196
200
|
const [images, setImages] = useState<File[]>([]);
|
|
197
201
|
|
|
198
202
|
return (
|
|
199
203
|
<ImageUploader
|
|
200
204
|
images={images}
|
|
201
205
|
setImages={setImages}
|
|
202
|
-
|
|
203
|
-
theme="modern"
|
|
206
|
+
autoUpload
|
|
204
207
|
uploadConfig={{
|
|
205
208
|
provider: 'imgbb',
|
|
206
|
-
config: { apiKey: process.env.IMGBB_API_KEY }
|
|
209
|
+
config: { apiKey: process.env.IMGBB_API_KEY! }
|
|
207
210
|
}}
|
|
208
211
|
onUploadComplete={(urls) => {
|
|
209
|
-
|
|
212
|
+
// Automatically upload when images are selected
|
|
213
|
+
saveUrlsToDatabase(urls);
|
|
210
214
|
}}
|
|
211
215
|
/>
|
|
212
216
|
);
|
|
213
217
|
}
|
|
214
218
|
```
|
|
215
219
|
|
|
216
|
-
###
|
|
220
|
+
### Update Mode (Existing Images)
|
|
217
221
|
|
|
218
222
|
```tsx
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
223
|
+
function UpdateExample() {
|
|
224
|
+
const [newImages, setNewImages] = useState<File[]>([]);
|
|
225
|
+
|
|
226
|
+
const existingImages = [
|
|
227
|
+
'https://example.com/image1.jpg',
|
|
228
|
+
'https://example.com/image2.jpg'
|
|
229
|
+
];
|
|
230
|
+
|
|
231
|
+
return (
|
|
232
|
+
<ImageUploader
|
|
233
|
+
images={newImages}
|
|
234
|
+
setImages={setNewImages}
|
|
235
|
+
mode="update"
|
|
236
|
+
defaultImages={existingImages}
|
|
237
|
+
theme="modern"
|
|
238
|
+
multiple
|
|
239
|
+
/>
|
|
240
|
+
);
|
|
241
|
+
}
|
|
232
242
|
```
|
|
233
243
|
|
|
234
|
-
###
|
|
244
|
+
### Custom Theme
|
|
235
245
|
|
|
236
246
|
```tsx
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
247
|
+
import { ImageUploader, type CustomTheme } from "ultra-image-uploader";
|
|
248
|
+
|
|
249
|
+
function CustomThemeExample() {
|
|
250
|
+
const [images, setImages] = useState<File[]>([]);
|
|
251
|
+
|
|
252
|
+
const customTheme: CustomTheme = {
|
|
253
|
+
name: 'MyBrand',
|
|
254
|
+
colors: {
|
|
255
|
+
primary: '#FF6B35',
|
|
256
|
+
primaryHover: '#E55A2B',
|
|
257
|
+
background: '#FFF5F0',
|
|
258
|
+
border: '#FFE5D9',
|
|
259
|
+
text: '#2D3142',
|
|
260
|
+
textSecondary: '#4F5D75',
|
|
261
|
+
cardBg: '#FFFFFF',
|
|
262
|
+
cardBorder: '#FFE5D9',
|
|
263
|
+
shadow: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
return (
|
|
268
|
+
<ImageUploader
|
|
269
|
+
images={images}
|
|
270
|
+
setImages={setImages}
|
|
271
|
+
customTheme={customTheme}
|
|
272
|
+
showThemeSelector={false}
|
|
273
|
+
/>
|
|
274
|
+
);
|
|
275
|
+
}
|
|
244
276
|
```
|
|
245
277
|
|
|
246
|
-
|
|
278
|
+
### Customization Options
|
|
247
279
|
|
|
248
|
-
|
|
280
|
+
```tsx
|
|
281
|
+
function CustomizedExample() {
|
|
282
|
+
const [images, setImages] = useState<File[]>([]);
|
|
249
283
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
284
|
+
return (
|
|
285
|
+
<ImageUploader
|
|
286
|
+
images={images}
|
|
287
|
+
setImages={setImages}
|
|
288
|
+
// Border radius
|
|
289
|
+
borderRadius="lg"
|
|
290
|
+
// Preview size (affects upload icon)
|
|
291
|
+
previewSize="lg"
|
|
292
|
+
// Container width
|
|
293
|
+
containerClassName="max-w-3xl mx-auto mt-8"
|
|
294
|
+
// Show/hide elements
|
|
295
|
+
showImageCount={true}
|
|
296
|
+
showFileName={true}
|
|
297
|
+
showFileSize={true}
|
|
298
|
+
// Constraints
|
|
299
|
+
multiple={true}
|
|
300
|
+
maxImages={10}
|
|
301
|
+
maxSize={10 * 1024 * 1024} // 10MB
|
|
302
|
+
// Theme
|
|
303
|
+
theme="fresh"
|
|
304
|
+
/>
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
```
|
|
254
308
|
|
|
255
|
-
###
|
|
256
|
-
- Gradient: Mint to rose
|
|
257
|
-
- Primary: `#10b981`
|
|
258
|
-
- Fresh and clean look
|
|
309
|
+
### Single Image Upload
|
|
259
310
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
- Nature-inspired design
|
|
311
|
+
```tsx
|
|
312
|
+
function SingleImageExample() {
|
|
313
|
+
const [avatar, setAvatar] = useState<File[]>([]);
|
|
264
314
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
315
|
+
return (
|
|
316
|
+
<ImageUploader
|
|
317
|
+
images={avatar}
|
|
318
|
+
setImages={setAvatar}
|
|
319
|
+
multiple={false}
|
|
320
|
+
maxImages={1}
|
|
321
|
+
theme="modern"
|
|
322
|
+
showImageCount={false}
|
|
323
|
+
showFileName={false}
|
|
324
|
+
showFileSize={false}
|
|
325
|
+
/>
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
```
|
|
269
329
|
|
|
270
|
-
###
|
|
271
|
-
- Gradient: Yellow to orange
|
|
272
|
-
- Primary: `#f59e0b`
|
|
273
|
-
- Warm sunset colors
|
|
330
|
+
### Product Gallery
|
|
274
331
|
|
|
275
|
-
|
|
332
|
+
```tsx
|
|
333
|
+
function ProductGallery() {
|
|
334
|
+
const [productImages, setProductImages] = useState<File[]>([]);
|
|
335
|
+
|
|
336
|
+
const handleUploadComplete = async (urls: string[]) => {
|
|
337
|
+
// Save to database
|
|
338
|
+
await fetch('/api/products/images', {
|
|
339
|
+
method: 'POST',
|
|
340
|
+
headers: { 'Content-Type': 'application/json' },
|
|
341
|
+
body: JSON.stringify({ images: urls }),
|
|
342
|
+
});
|
|
343
|
+
};
|
|
276
344
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
345
|
+
return (
|
|
346
|
+
<ImageUploader
|
|
347
|
+
images={productImages}
|
|
348
|
+
setImages={setProductImages}
|
|
349
|
+
multiple={true}
|
|
350
|
+
maxImages={8}
|
|
351
|
+
maxSize={5 * 1024 * 1024} // 5MB
|
|
352
|
+
theme="nature"
|
|
353
|
+
borderRadius="lg"
|
|
354
|
+
uploadConfig={{
|
|
355
|
+
provider: 'cloudinary',
|
|
356
|
+
config: {
|
|
357
|
+
cloudName: process.env.CLOUDINARY_CLOUD_NAME!,
|
|
358
|
+
uploadPreset: 'products'
|
|
359
|
+
}
|
|
360
|
+
}}
|
|
361
|
+
onUploadComplete={handleUploadComplete}
|
|
362
|
+
/>
|
|
363
|
+
);
|
|
364
|
+
}
|
|
365
|
+
```
|
|
284
366
|
|
|
285
|
-
##
|
|
367
|
+
## Built-in Themes
|
|
286
368
|
|
|
287
|
-
|
|
288
|
-
-
|
|
289
|
-
-
|
|
290
|
-
-
|
|
369
|
+
### Nature (Green)
|
|
370
|
+
- Soft greens with organic feel
|
|
371
|
+
- Primary: `#16a34a`
|
|
372
|
+
- Background: `#f0fdf4`
|
|
373
|
+
- Perfect for: Nature, health, eco-friendly apps
|
|
374
|
+
|
|
375
|
+
### Modern (Neutral)
|
|
376
|
+
- Clean monochrome design
|
|
377
|
+
- Primary: `#09090b`
|
|
378
|
+
- Background: `#fafafa`
|
|
379
|
+
- Perfect for: Professional apps, portfolios, dashboards
|
|
380
|
+
|
|
381
|
+
### Fresh (Blue)
|
|
382
|
+
- Light blue airy design
|
|
383
|
+
- Primary: `#0284c7`
|
|
384
|
+
- Background: `#f0f9ff`
|
|
385
|
+
- Perfect for: Social apps, SaaS, modern web apps
|
|
386
|
+
|
|
387
|
+
### Dark (Dark Gradient)
|
|
388
|
+
- Dark gradient with blue accent
|
|
389
|
+
- Primary: `#3b82f6`
|
|
390
|
+
- Background: `linear-gradient(135deg, #1e293b 0%, #0f172a 100%)`
|
|
391
|
+
- Perfect for: Dark mode apps, modern interfaces
|
|
392
|
+
|
|
393
|
+
### Ocean (Blue Gradient)
|
|
394
|
+
- Beautiful blue to purple gradient
|
|
395
|
+
- Primary: `#06b6d4`
|
|
396
|
+
- Background: `linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%)`
|
|
397
|
+
- Perfect for: Creative apps, vibrant interfaces
|
|
398
|
+
|
|
399
|
+
## Customization
|
|
400
|
+
|
|
401
|
+
### Border Radius Options
|
|
291
402
|
|
|
292
|
-
|
|
403
|
+
```tsx
|
|
404
|
+
borderRadius="none" // 0
|
|
405
|
+
borderRadius="sm" // 0.25rem
|
|
406
|
+
borderRadius="md" // 0.375rem (default)
|
|
407
|
+
borderRadius="lg" // 0.5rem
|
|
408
|
+
borderRadius="full" // 9999px (circular)
|
|
409
|
+
```
|
|
293
410
|
|
|
294
|
-
|
|
295
|
-
- Mobile: 2 columns
|
|
296
|
-
- Tablet: 3 columns
|
|
297
|
-
- Desktop: 4 columns
|
|
298
|
-
- Wide: 5 columns
|
|
299
|
-
- Default container: `max-w-5xl mx-auto mt-10`
|
|
411
|
+
### Preview Size Options
|
|
300
412
|
|
|
301
|
-
|
|
413
|
+
```tsx
|
|
414
|
+
previewSize="xs" // Extra small (40px)
|
|
415
|
+
previewSize="sm" // Small (48px)
|
|
416
|
+
previewSize="md" // Medium (56px)
|
|
417
|
+
previewSize="lg" // Large (64px) - default
|
|
418
|
+
previewSize="xl" // Extra large (80px)
|
|
419
|
+
previewSize="2xl" // Double extra large (96px)
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Show/Hide Elements
|
|
302
423
|
|
|
303
424
|
```tsx
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
} from "ultra-image-uploader";
|
|
310
|
-
|
|
311
|
-
// Upload with progress
|
|
312
|
-
const result = await uploadImage(file, 'imgbb', { apiKey }, {
|
|
313
|
-
onProgress: (p) => console.log(p.percentage)
|
|
314
|
-
});
|
|
315
|
-
|
|
316
|
-
// Multiple uploads
|
|
317
|
-
const results = await uploadImages(files, 'cloudinary', {
|
|
318
|
-
cloudName: 'your-cloud'
|
|
319
|
-
});
|
|
425
|
+
<ImageUploader
|
|
426
|
+
showImageCount={false} // Hide image count badge
|
|
427
|
+
showFileName={false} // Hide file names
|
|
428
|
+
showFileSize={false} // Hide file sizes
|
|
429
|
+
/>
|
|
320
430
|
```
|
|
321
431
|
|
|
322
|
-
##
|
|
432
|
+
## Upload Providers
|
|
323
433
|
|
|
324
434
|
### ImgBB
|
|
435
|
+
|
|
325
436
|
1. Get API key from [imgbb.com/settings/api](https://imgbb.com/settings/api)
|
|
326
|
-
2.
|
|
437
|
+
2. Configure:
|
|
438
|
+
|
|
439
|
+
```tsx
|
|
440
|
+
uploadConfig={{
|
|
441
|
+
provider: 'imgbb',
|
|
442
|
+
config: { apiKey: 'your-api-key' }
|
|
443
|
+
}}
|
|
444
|
+
```
|
|
327
445
|
|
|
328
446
|
### Cloudinary
|
|
447
|
+
|
|
329
448
|
1. Sign up at [cloudinary.com](https://cloudinary.com)
|
|
330
449
|
2. Get cloud name and create upload preset
|
|
331
|
-
3.
|
|
450
|
+
3. Configure:
|
|
451
|
+
|
|
452
|
+
```tsx
|
|
453
|
+
uploadConfig={{
|
|
454
|
+
provider: 'cloudinary',
|
|
455
|
+
config: {
|
|
456
|
+
cloudName: 'your-cloud-name',
|
|
457
|
+
uploadPreset: 'your-upload-preset'
|
|
458
|
+
}
|
|
459
|
+
}}
|
|
460
|
+
```
|
|
332
461
|
|
|
333
462
|
## TypeScript
|
|
334
463
|
|
|
335
464
|
Full TypeScript support:
|
|
336
465
|
|
|
337
466
|
```tsx
|
|
338
|
-
import type { ImageUploaderProps } from "ultra-image-uploader";
|
|
339
|
-
import type { Theme } from "ultra-image-uploader";
|
|
467
|
+
import type { ImageUploaderProps, ThemeName, CustomTheme } from "ultra-image-uploader";
|
|
340
468
|
```
|
|
341
469
|
|
|
470
|
+
## Animations
|
|
471
|
+
|
|
472
|
+
The component includes smooth, performance-friendly animations:
|
|
473
|
+
- Drag-over state with border color change
|
|
474
|
+
- Fade-in for image previews
|
|
475
|
+
- Hover effects with shadow and scale
|
|
476
|
+
- Progress overlay with backdrop blur
|
|
477
|
+
- Done indicator with checkmark
|
|
478
|
+
- All transitions use CSS transforms for 60fps performance
|
|
479
|
+
|
|
480
|
+
## Accessibility
|
|
481
|
+
|
|
482
|
+
- Keyboard accessible (Tab to focus, Enter/Space to upload)
|
|
483
|
+
- Focus visible on drag area
|
|
484
|
+
- ARIA-compatible markup
|
|
485
|
+
- Screen reader friendly
|
|
486
|
+
- Semantic HTML structure
|
|
487
|
+
|
|
488
|
+
## Responsive Design
|
|
489
|
+
|
|
490
|
+
The grid layout adapts to screen sizes:
|
|
491
|
+
- Mobile (2 columns): 320px+
|
|
492
|
+
- Tablet (3 columns): 640px+
|
|
493
|
+
- Desktop (4 columns): 768px+
|
|
494
|
+
- Wide (5 columns): 1024px+
|
|
495
|
+
- Default container: `max-w-5xl mx-auto mt-10`
|
|
496
|
+
|
|
342
497
|
## Browser Support
|
|
343
498
|
|
|
344
499
|
- Chrome/Edge (latest)
|
|
345
500
|
- Firefox (latest)
|
|
346
501
|
- Safari (latest)
|
|
347
|
-
- Mobile browsers
|
|
502
|
+
- Mobile browsers (iOS Safari, Chrome Mobile)
|
|
348
503
|
|
|
349
504
|
## Troubleshooting
|
|
350
505
|
|
|
351
506
|
### Auto imports not working
|
|
352
|
-
- Restart TypeScript server in your editor
|
|
353
|
-
- Ensure `node_modules` exists
|
|
354
|
-
|
|
355
|
-
### Theme not applying
|
|
356
|
-
- Check that theme name matches one of the built-in themes
|
|
357
|
-
- For custom themes, verify the structure matches the Theme type
|
|
507
|
+
- Restart TypeScript server in your editor (Cmd+Shift+P > "Restart TypeScript Server")
|
|
508
|
+
- Ensure `node_modules` exists (`npm install`)
|
|
358
509
|
|
|
359
510
|
### Images not uploading
|
|
360
|
-
- Verify API credentials
|
|
511
|
+
- Verify API credentials in environment variables
|
|
361
512
|
- Check browser console for errors
|
|
362
513
|
- Ensure CORS is configured for your upload provider
|
|
363
514
|
|
|
515
|
+
### Theme not applying
|
|
516
|
+
- Check that theme name matches: `'nature'` | `'modern'` | `'fresh'`
|
|
517
|
+
- For custom themes, verify the structure matches `CustomTheme` type
|
|
518
|
+
|
|
364
519
|
## License
|
|
365
520
|
|
|
366
521
|
MIT © Digontha Das
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { UploadProvider, ProviderConfig } from '../types';
|
|
2
2
|
export declare const themes: {
|
|
3
|
-
|
|
3
|
+
nature: {
|
|
4
4
|
name: string;
|
|
5
5
|
colors: {
|
|
6
6
|
primary: string;
|
|
@@ -14,7 +14,7 @@ export declare const themes: {
|
|
|
14
14
|
shadow: string;
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
modern: {
|
|
18
18
|
name: string;
|
|
19
19
|
colors: {
|
|
20
20
|
primary: string;
|
|
@@ -28,7 +28,7 @@ export declare const themes: {
|
|
|
28
28
|
shadow: string;
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
fresh: {
|
|
32
32
|
name: string;
|
|
33
33
|
colors: {
|
|
34
34
|
primary: string;
|
|
@@ -42,7 +42,7 @@ export declare const themes: {
|
|
|
42
42
|
shadow: string;
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
|
-
|
|
45
|
+
dark: {
|
|
46
46
|
name: string;
|
|
47
47
|
colors: {
|
|
48
48
|
primary: string;
|
|
@@ -56,7 +56,7 @@ export declare const themes: {
|
|
|
56
56
|
shadow: string;
|
|
57
57
|
};
|
|
58
58
|
};
|
|
59
|
-
|
|
59
|
+
ocean: {
|
|
60
60
|
name: string;
|
|
61
61
|
colors: {
|
|
62
62
|
primary: string;
|
|
@@ -71,6 +71,8 @@ export declare const themes: {
|
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
73
|
};
|
|
74
|
+
export type ThemeName = keyof typeof themes;
|
|
75
|
+
export type CustomTheme = typeof themes[ThemeName];
|
|
74
76
|
export interface ImageUploaderProps {
|
|
75
77
|
images: File[];
|
|
76
78
|
setImages: (images: File[]) => void;
|
|
@@ -80,19 +82,23 @@ export interface ImageUploaderProps {
|
|
|
80
82
|
maxSize?: number;
|
|
81
83
|
allowedTypes?: string[];
|
|
82
84
|
maxImages?: number;
|
|
83
|
-
className?: string;
|
|
84
|
-
containerClassName?: string;
|
|
85
|
-
theme?: keyof typeof themes;
|
|
86
|
-
customTheme?: typeof themes[keyof typeof themes];
|
|
87
|
-
showThemeSelector?: boolean;
|
|
88
|
-
showImageCount?: boolean;
|
|
89
|
-
onUploadComplete?: (urls: string[]) => void;
|
|
90
|
-
onUploadError?: (error: Error) => void;
|
|
91
|
-
autoUpload?: boolean;
|
|
92
85
|
uploadConfig?: {
|
|
93
86
|
provider: UploadProvider;
|
|
94
87
|
config: ProviderConfig;
|
|
95
88
|
};
|
|
89
|
+
autoUpload?: boolean;
|
|
90
|
+
onUploadComplete?: (urls: string[]) => void;
|
|
91
|
+
onUploadError?: (error: Error) => void;
|
|
92
|
+
theme?: ThemeName;
|
|
93
|
+
customTheme?: CustomTheme;
|
|
94
|
+
showThemeSelector?: boolean;
|
|
95
|
+
previewSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
96
|
+
borderRadius?: 'none' | 'sm' | 'md' | 'lg' | 'full';
|
|
97
|
+
className?: string;
|
|
98
|
+
containerClassName?: string;
|
|
99
|
+
showImageCount?: boolean;
|
|
100
|
+
showFileSize?: boolean;
|
|
101
|
+
showFileName?: boolean;
|
|
96
102
|
}
|
|
97
|
-
export declare function ImageUploader({ images, setImages, mode, defaultImages, multiple, maxSize, allowedTypes, maxImages,
|
|
103
|
+
export declare function ImageUploader({ images, setImages, mode, defaultImages, multiple, maxSize, allowedTypes, maxImages, uploadConfig, autoUpload, onUploadComplete, onUploadError, theme, customTheme, showThemeSelector, previewSize, borderRadius, className, containerClassName, showImageCount, showFileSize, showFileName, }: ImageUploaderProps): import("react/jsx-runtime").JSX.Element;
|
|
98
104
|
//# sourceMappingURL=ImageUploader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuElB,CAAC;AAEF,MAAM,WAAW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"ImageUploader.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuElB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IAEjC,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAGpC,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,cAAc,CAAC;QACzB,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGvC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACvD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAiBD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,IAAY,EACZ,aAAkB,EAClB,QAAe,EACf,OAA0B,EAC1B,YAAmG,EACnG,SAAc,EACd,YAAY,EACZ,UAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,KAAgB,EAChB,WAAW,EACX,iBAAyB,EACzB,WAAkB,EAClB,YAAmB,EACnB,SAAc,EACd,kBAA8C,EAC9C,cAAqB,EACrB,YAAmB,EACnB,YAAmB,GACpB,EAAE,kBAAkB,2CAoepB"}
|
|
@@ -1,83 +1,90 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
4
|
-
import { Upload, X, Image as ImageIcon, Loader2
|
|
4
|
+
import { Upload, X, Image as ImageIcon, Loader2 } from 'lucide-react';
|
|
5
5
|
import { uploadImage } from '../providers';
|
|
6
6
|
import { isImageFile, formatFileSize } from '../utils/validation';
|
|
7
|
-
// Theme definitions
|
|
7
|
+
// Theme definitions - shadcn/ui inspired
|
|
8
8
|
export const themes = {
|
|
9
|
+
nature: {
|
|
10
|
+
name: 'Nature',
|
|
11
|
+
colors: {
|
|
12
|
+
primary: '#16a34a',
|
|
13
|
+
primaryHover: '#15803d',
|
|
14
|
+
background: '#f0fdf4',
|
|
15
|
+
border: '#bbf7d0',
|
|
16
|
+
text: '#14532d',
|
|
17
|
+
textSecondary: '#166534',
|
|
18
|
+
cardBg: '#ffffff',
|
|
19
|
+
cardBorder: '#dcfce7',
|
|
20
|
+
shadow: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
9
23
|
modern: {
|
|
10
24
|
name: 'Modern',
|
|
11
25
|
colors: {
|
|
12
|
-
primary: '#
|
|
13
|
-
primaryHover: '#
|
|
14
|
-
background: '
|
|
15
|
-
border: '#
|
|
16
|
-
text: '#
|
|
17
|
-
textSecondary: '#
|
|
26
|
+
primary: '#09090b',
|
|
27
|
+
primaryHover: '#18181b',
|
|
28
|
+
background: '#fafafa',
|
|
29
|
+
border: '#e4e4e7',
|
|
30
|
+
text: '#18181b',
|
|
31
|
+
textSecondary: '#71717a',
|
|
18
32
|
cardBg: '#ffffff',
|
|
19
|
-
cardBorder: '#
|
|
20
|
-
shadow: '0
|
|
33
|
+
cardBorder: '#e4e4e7',
|
|
34
|
+
shadow: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
|
|
21
35
|
},
|
|
22
36
|
},
|
|
23
37
|
fresh: {
|
|
24
38
|
name: 'Fresh',
|
|
25
39
|
colors: {
|
|
26
|
-
primary: '#
|
|
27
|
-
primaryHover: '#
|
|
28
|
-
background: '
|
|
29
|
-
border: '#
|
|
30
|
-
text: '#
|
|
31
|
-
textSecondary: '#
|
|
40
|
+
primary: '#0284c7',
|
|
41
|
+
primaryHover: '#0369a1',
|
|
42
|
+
background: '#f0f9ff',
|
|
43
|
+
border: '#bae6fd',
|
|
44
|
+
text: '#0c4a6e',
|
|
45
|
+
textSecondary: '#075985',
|
|
32
46
|
cardBg: '#ffffff',
|
|
33
|
-
cardBorder: '#
|
|
34
|
-
shadow: '0
|
|
47
|
+
cardBorder: '#e0f2fe',
|
|
48
|
+
shadow: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
|
|
35
49
|
},
|
|
36
50
|
},
|
|
37
|
-
|
|
38
|
-
name: '
|
|
51
|
+
dark: {
|
|
52
|
+
name: 'Dark',
|
|
39
53
|
colors: {
|
|
40
|
-
primary: '#
|
|
41
|
-
primaryHover: '#
|
|
42
|
-
background: 'linear-gradient(135deg, #
|
|
43
|
-
border: '#
|
|
44
|
-
text: '#
|
|
45
|
-
textSecondary: '#
|
|
46
|
-
cardBg: '#
|
|
47
|
-
cardBorder: '#
|
|
48
|
-
shadow: '0
|
|
54
|
+
primary: '#3b82f6',
|
|
55
|
+
primaryHover: '#2563eb',
|
|
56
|
+
background: 'linear-gradient(135deg, #1e293b 0%, #0f172a 100%)',
|
|
57
|
+
border: '#334155',
|
|
58
|
+
text: '#f8fafc',
|
|
59
|
+
textSecondary: '#94a3b8',
|
|
60
|
+
cardBg: '#1e293b',
|
|
61
|
+
cardBorder: '#334155',
|
|
62
|
+
shadow: '0 1px 3px 0 rgb(0 0 0 / 0.5), 0 1px 2px -1px rgb(0 0 0 / 0.3)',
|
|
49
63
|
},
|
|
50
64
|
},
|
|
51
65
|
ocean: {
|
|
52
66
|
name: 'Ocean',
|
|
53
67
|
colors: {
|
|
54
|
-
primary: '#
|
|
55
|
-
primaryHover: '#
|
|
56
|
-
background: 'linear-gradient(135deg, #
|
|
57
|
-
border: '#
|
|
58
|
-
text: '#
|
|
59
|
-
textSecondary: '#
|
|
60
|
-
cardBg: '#
|
|
61
|
-
cardBorder: '#
|
|
62
|
-
shadow: '0
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
sunset: {
|
|
66
|
-
name: 'Sunset',
|
|
67
|
-
colors: {
|
|
68
|
-
primary: '#f59e0b',
|
|
69
|
-
primaryHover: '#d97706',
|
|
70
|
-
background: 'linear-gradient(135deg, #f6d365 0%, #fda085 100%)',
|
|
71
|
-
border: '#fed7aa',
|
|
72
|
-
text: '#78350f',
|
|
73
|
-
textSecondary: '#9a3412',
|
|
74
|
-
cardBg: '#fffbeb',
|
|
75
|
-
cardBorder: '#fef3c7',
|
|
76
|
-
shadow: '0 12px 40px rgba(245, 158, 11, 0.2).',
|
|
68
|
+
primary: '#06b6d4',
|
|
69
|
+
primaryHover: '#0891b2',
|
|
70
|
+
background: 'linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%)',
|
|
71
|
+
border: '#7dd3fc',
|
|
72
|
+
text: '#f0f9ff',
|
|
73
|
+
textSecondary: '#bae6fd',
|
|
74
|
+
cardBg: '#0c4a6e',
|
|
75
|
+
cardBorder: '#0369a1',
|
|
76
|
+
shadow: '0 1px 3px 0 rgb(0 0 0 / 0.3), 0 1px 2px -1px rgb(0 0 0 / 0.2)',
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
const borderRadiusMap = {
|
|
81
|
+
none: '0',
|
|
82
|
+
sm: '0.25rem',
|
|
83
|
+
md: '0.375rem',
|
|
84
|
+
lg: '0.5rem',
|
|
85
|
+
full: '9999px',
|
|
86
|
+
};
|
|
87
|
+
export function ImageUploader({ images, setImages, mode = 'add', defaultImages = [], multiple = true, maxSize = 50 * 1024 * 1024, allowedTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp', 'image/gif', 'image/svg+xml'], maxImages = 20, uploadConfig, autoUpload = false, onUploadComplete, onUploadError, theme = 'nature', customTheme, showThemeSelector = false, previewSize = 'lg', borderRadius = 'md', className = '', containerClassName = 'max-w-5xl mx-auto mt-10', showImageCount = true, showFileSize = true, showFileName = true, }) {
|
|
81
88
|
const [selectedTheme, setSelectedTheme] = useState(theme);
|
|
82
89
|
const [isDragging, setIsDragging] = useState(false);
|
|
83
90
|
const [fileStates, setFileStates] = useState(new Map());
|
|
@@ -87,6 +94,7 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
87
94
|
const dragCounter = useRef(0);
|
|
88
95
|
const currentTheme = customTheme || themes[selectedTheme];
|
|
89
96
|
const t = currentTheme.colors;
|
|
97
|
+
const radius = borderRadiusMap[borderRadius];
|
|
90
98
|
// Generate previews
|
|
91
99
|
useEffect(() => {
|
|
92
100
|
const newStates = new Map();
|
|
@@ -225,82 +233,78 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
225
233
|
const key = `${file.name}-${file.size}`;
|
|
226
234
|
return fileStates.get(key) || { ...file, progress: 0, status: 'pending' };
|
|
227
235
|
};
|
|
228
|
-
return (_jsxs("div", { className: `image-uploader ${containerClassName} ${className}`, children: [_jsxs("div", { className: "flex items-center justify-between mb-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
236
|
+
return (_jsxs("div", { className: `image-uploader ${containerClassName} ${className}`, children: [_jsxs("div", { className: "flex items-center justify-between mb-6", children: [_jsxs("div", { children: [_jsxs("h2", { className: "text-2xl font-semibold tracking-tight", style: { color: t.text }, children: [mode === 'update' ? 'Update' : 'Upload', " Images"] }), _jsx("p", { className: "text-sm", style: { color: t.textSecondary }, children: multiple ? 'Drag and drop or click to upload' : 'Select an image to upload' })] }), showImageCount && (_jsxs("div", { className: "inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium rounded-md border", style: {
|
|
237
|
+
backgroundColor: t.cardBg,
|
|
238
|
+
borderColor: t.cardBorder,
|
|
239
|
+
color: t.text,
|
|
240
|
+
}, children: [_jsx("span", { children: images.length }), maxImages && _jsxs("span", { className: "text-muted", style: { color: t.textSecondary }, children: ["/ ", maxImages] })] }))] }), showThemeSelector && (_jsx("div", { className: "mb-6 inline-flex gap-1 p-1 rounded-lg border", style: { backgroundColor: t.background, borderColor: t.cardBorder }, children: Object.keys(themes).map((key) => (_jsx("button", { onClick: () => setSelectedTheme(key), className: "px-3 py-1.5 text-sm font-medium rounded-md transition-colors", style: {
|
|
241
|
+
backgroundColor: selectedTheme === key ? t.cardBg : 'transparent',
|
|
242
|
+
color: selectedTheme === key ? t.text : t.textSecondary,
|
|
243
|
+
}, children: themes[key].name }, key))) })), _jsxs("div", { role: "button", tabIndex: 0, "aria-label": "Upload images", className: "relative group cursor-pointer overflow-hidden transition-all duration-200", style: {
|
|
244
|
+
borderRadius: radius,
|
|
245
|
+
border: `2px dashed ${isDragging ? t.primary : t.cardBorder}`,
|
|
246
|
+
backgroundColor: t.background,
|
|
247
|
+
}, onClick: () => fileInputRef.current?.click(), onKeyDown: (e) => {
|
|
248
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
249
|
+
e.preventDefault();
|
|
250
|
+
fileInputRef.current?.click();
|
|
251
|
+
}
|
|
252
|
+
}, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, children: [_jsx("input", { ref: fileInputRef, type: "file", accept: allowedTypes.join(','), multiple: multiple, onChange: handleChange, className: "absolute inset-0 opacity-0 cursor-pointer", style: {
|
|
253
|
+
zIndex: 10,
|
|
254
|
+
width: '0.1px',
|
|
255
|
+
height: '0.1px',
|
|
256
|
+
padding: 0,
|
|
257
|
+
margin: 0,
|
|
258
|
+
overflow: 'hidden',
|
|
259
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
260
|
+
whiteSpace: 'nowrap',
|
|
261
|
+
}, tabIndex: -1 }), _jsxs("div", { className: "flex flex-col items-center justify-center p-8", children: [_jsx("div", { className: "mb-4 flex items-center justify-center transition-transform duration-200", style: { color: isDragging ? t.primary : t.textSecondary }, children: _jsx("div", { className: "flex items-center justify-center rounded-full", style: {
|
|
262
|
+
width: previewSize === '2xl' ? '96px' : previewSize === 'xl' ? '80px' : previewSize === 'lg' ? '64px' : previewSize === 'md' ? '56px' : previewSize === 'sm' ? '48px' : '40px',
|
|
263
|
+
height: previewSize === '2xl' ? '96px' : previewSize === 'xl' ? '80px' : previewSize === 'lg' ? '64px' : previewSize === 'md' ? '56px' : previewSize === 'sm' ? '48px' : '40px',
|
|
264
|
+
backgroundColor: t.cardBg,
|
|
265
|
+
border: `1px solid ${t.cardBorder}`,
|
|
266
|
+
}, children: _jsx(ImageIcon, { size: 24 }) }) }), _jsx("div", { className: "text-center space-y-1", children: _jsx("p", { className: "text-sm font-medium", style: { color: t.text }, children: isDragging ? 'Drop here' : 'Click or drop to upload' }) })] })] }), (images.length > 0 || defaultImages.length > 0) && (_jsx("div", { className: "mt-6", children: _jsxs("div", { className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4", children: [mode === 'update' &&
|
|
267
|
+
defaultImages.map((url, index) => !removedDefaults.includes(index) && (_jsx("div", { className: "relative group aspect-square", style: { animation: 'fadeIn 0.2s ease-out' }, children: _jsxs("div", { className: "relative w-full h-full overflow-hidden border transition-all duration-200 hover:shadow-md", style: {
|
|
268
|
+
borderRadius: radius,
|
|
269
|
+
borderColor: t.cardBorder,
|
|
251
270
|
backgroundColor: t.cardBg,
|
|
252
|
-
}, children:
|
|
253
|
-
|
|
254
|
-
|
|
271
|
+
}, children: [_jsx("img", { src: url, alt: `Preview ${index + 1}`, className: "w-full h-full object-cover" }), _jsx("button", { onClick: () => removeDefaultImage(index), className: "absolute top-2 right-2 w-7 h-7 flex items-center justify-center rounded-full opacity-0 group-hover:opacity-100 transition-opacity duration-200", style: {
|
|
272
|
+
backgroundColor: 'rgba(0,0,0,0.7)',
|
|
273
|
+
backdropFilter: 'blur(4px)',
|
|
274
|
+
}, children: _jsx(X, { size: 14, className: "text-white" }) })] }) }, `default-${index}`))), images.map((file, index) => {
|
|
255
275
|
const state = getFileState(file);
|
|
256
276
|
const isUploading = state.status === 'uploading';
|
|
257
277
|
const isDone = state.status === 'done';
|
|
258
|
-
return (
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
278
|
+
return (_jsxs("div", { className: "relative group aspect-square", style: { animation: 'fadeIn 0.2s ease-out', animationDelay: `${index * 30}ms` }, children: [_jsxs("div", { className: "relative w-full h-full overflow-hidden border transition-all duration-200 hover:shadow-md", style: {
|
|
279
|
+
borderRadius: radius,
|
|
280
|
+
borderColor: t.cardBorder,
|
|
281
|
+
backgroundColor: t.cardBg,
|
|
282
|
+
}, children: [state.preview ? (_jsx("img", { src: state.preview, alt: file.name, className: "w-full h-full object-cover" })) : (_jsx("div", { className: "w-full h-full flex items-center justify-center", style: { backgroundColor: t.border }, children: _jsx(ImageIcon, { size: 32, style: { color: t.primary } }) })), _jsx("button", { onClick: () => removeFile(index), className: "absolute top-2 right-2 w-7 h-7 flex items-center justify-center rounded-full opacity-0 group-hover:opacity-100 transition-opacity duration-200", style: {
|
|
283
|
+
backgroundColor: 'rgba(0,0,0,0.7)',
|
|
284
|
+
backdropFilter: 'blur(4px)',
|
|
285
|
+
}, children: _jsx(X, { size: 14, className: "text-white" }) }), isUploading && (_jsx("div", { className: "absolute inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center", children: _jsxs("div", { className: "text-center", children: [_jsx(Loader2, { size: 24, className: "animate-spin text-white mx-auto mb-2" }), _jsxs("p", { className: "text-white text-xs font-medium", children: [state.progress, "%"] })] }) })), isDone && (_jsx("div", { className: "absolute inset-0 bg-black/20 backdrop-blur-sm flex items-center justify-center", children: _jsx("div", { className: "w-12 h-12 bg-green-500 rounded-full flex items-center justify-center", style: {
|
|
286
|
+
boxShadow: '0 4px 12px rgba(34, 197, 94, 0.4)',
|
|
287
|
+
}, children: _jsx("svg", { className: "w-6 h-6 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 13l4 4L19 7" }) }) }) }))] }), (showFileName || showFileSize) && (_jsxs("div", { className: "mt-2 space-y-0.5", children: [showFileName && (_jsx("p", { className: "text-xs font-medium truncate", style: { color: t.text }, children: file.name })), showFileSize && (_jsx("p", { className: "text-xs", style: { color: t.textSecondary }, children: formatFileSize(file.size) }))] }))] }, `${file.name}-${file.size}`));
|
|
288
|
+
})] }) })), images.length > 0 && !autoUpload && uploadConfig && (_jsxs("div", { className: "mt-6 flex items-center justify-end gap-3", children: [_jsx("button", { onClick: () => {
|
|
268
289
|
setImages([]);
|
|
269
290
|
setRemovedDefaults([]);
|
|
270
|
-
}, className: "px-
|
|
291
|
+
}, className: "px-4 py-2 text-sm font-medium rounded-md border transition-colors duration-200 hover:bg-opacity-80", style: {
|
|
271
292
|
backgroundColor: t.cardBg,
|
|
272
293
|
color: t.text,
|
|
273
|
-
|
|
274
|
-
}, children: "Clear
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
}, children: uploading ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { size: 20, className: "animate-spin" }), "Uploading..."] })) : (_jsxs(_Fragment, { children: [_jsx(Upload, { size: 20 }), "Upload ", images.length, " ", images.length === 1 ? 'Image' : 'Images'] })) })] })), _jsx("style", { children: `
|
|
294
|
+
borderColor: t.cardBorder,
|
|
295
|
+
}, children: "Clear" }), _jsx("button", { onClick: handleAutoUpload, disabled: uploading, className: "px-4 py-2 text-sm font-medium rounded-md text-white transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed inline-flex items-center gap-2", style: {
|
|
296
|
+
backgroundColor: t.primary,
|
|
297
|
+
}, children: uploading ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { size: 16, className: "animate-spin" }), "Uploading..."] })) : (_jsxs(_Fragment, { children: [_jsx(Upload, { size: 16 }), "Upload ", images.length, " ", images.length === 1 ? 'image' : 'images'] })) })] })), _jsx("style", { children: `
|
|
278
298
|
@keyframes fadeIn {
|
|
279
299
|
from {
|
|
280
300
|
opacity: 0;
|
|
281
|
-
transform: translateY(
|
|
301
|
+
transform: translateY(4px);
|
|
282
302
|
}
|
|
283
303
|
to {
|
|
284
304
|
opacity: 1;
|
|
285
305
|
transform: translateY(0);
|
|
286
306
|
}
|
|
287
307
|
}
|
|
288
|
-
|
|
289
|
-
@keyframes bounce-in {
|
|
290
|
-
0% {
|
|
291
|
-
transform: scale(0);
|
|
292
|
-
}
|
|
293
|
-
50% {
|
|
294
|
-
transform: scale(1.1);
|
|
295
|
-
}
|
|
296
|
-
100% {
|
|
297
|
-
transform: scale(1);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
.animate-bounce-in {
|
|
302
|
-
animation: bounce-in 0.5s ease-out forwards;
|
|
303
|
-
}
|
|
304
308
|
` })] }));
|
|
305
309
|
}
|
|
306
310
|
//# sourceMappingURL=ImageUploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultra-image-uploader",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "A modern,
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"description": "A modern, shadcn/ui-inspired React image upload component with beautiful themes, drag-and-drop, and smooth animations",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|