ultra-image-uploader 3.0.3 → 3.0.5
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
|
@@ -55,48 +55,46 @@ import { useState } from "react";
|
|
|
55
55
|
function App() {
|
|
56
56
|
const [images, setImages] = useState<File[]>([]);
|
|
57
57
|
|
|
58
|
-
return
|
|
59
|
-
<ImageUploader
|
|
60
|
-
images={images}
|
|
61
|
-
setImages={setImages}
|
|
62
|
-
multiple
|
|
63
|
-
/>
|
|
64
|
-
);
|
|
58
|
+
return <ImageUploader images={images} setImages={setImages} multiple />;
|
|
65
59
|
}
|
|
66
60
|
```
|
|
67
61
|
|
|
68
62
|
## Props
|
|
69
63
|
|
|
70
|
-
| Prop
|
|
71
|
-
|
|
72
|
-
| **Core**
|
|
73
|
-
| `images`
|
|
74
|
-
| `setImages`
|
|
75
|
-
| **Mode**
|
|
76
|
-
| `mode`
|
|
77
|
-
| `defaultImages`
|
|
78
|
-
| **File Constraints**
|
|
79
|
-
| `multiple`
|
|
80
|
-
| `maxSize`
|
|
81
|
-
| `allowedTypes`
|
|
82
|
-
| `maxImages`
|
|
83
|
-
| **Upload**
|
|
84
|
-
| `uploadConfig`
|
|
85
|
-
| `autoUpload`
|
|
86
|
-
| `onUploadComplete`
|
|
87
|
-
| `onUploadError`
|
|
88
|
-
| **Theme & Styling**
|
|
89
|
-
| `theme`
|
|
90
|
-
| `customTheme`
|
|
91
|
-
| `showThemeSelector`
|
|
92
|
-
| `borderRadius`
|
|
93
|
-
| `previewSize`
|
|
94
|
-
| `className`
|
|
95
|
-
| `containerClassName`
|
|
96
|
-
| **UI Toggles**
|
|
97
|
-
| `showImageCount`
|
|
98
|
-
| `showFileName`
|
|
99
|
-
| `showFileSize`
|
|
64
|
+
| Prop | Type | Default | Description |
|
|
65
|
+
| ----------------------- | ------------------------------------------------------ | --------------------------- | ------------------------------- |
|
|
66
|
+
| **Core** |
|
|
67
|
+
| `images` | `File[]` | **Required** | Selected image files |
|
|
68
|
+
| `setImages` | `(files: File[]) => void` | **Required** | Update images state |
|
|
69
|
+
| **Mode** |
|
|
70
|
+
| `mode` | `'add' \| 'update'` | `'add'` | Upload mode |
|
|
71
|
+
| `defaultImages` | `string[]` | `[]` | Default images (update mode) |
|
|
72
|
+
| **File Constraints** |
|
|
73
|
+
| `multiple` | `boolean` | `true` | Allow multiple files |
|
|
74
|
+
| `maxSize` | `number` | `52428800` | Max file size (50MB) |
|
|
75
|
+
| `allowedTypes` | `string[]` | Image types | Allowed MIME types |
|
|
76
|
+
| `maxImages` | `number` | `20` | Maximum images allowed |
|
|
77
|
+
| **Upload** |
|
|
78
|
+
| `uploadConfig` | `{ provider, config }` | `undefined` | Upload configuration |
|
|
79
|
+
| `autoUpload` | `boolean` | `false` | Auto-upload on selection |
|
|
80
|
+
| `onUploadComplete` | `(urls: string[]) => void` | `undefined` | Success callback |
|
|
81
|
+
| `onUploadError` | `(error: Error) => void` | `undefined` | Error callback |
|
|
82
|
+
| **Theme & Styling** |
|
|
83
|
+
| `theme` | `'nature' \| 'modern' \| 'fresh' \| 'dark' \| 'ocean'` | `'nature'` | Built-in theme |
|
|
84
|
+
| `customTheme` | `Theme` | `undefined` | Custom theme object |
|
|
85
|
+
| `showThemeSelector` | `boolean` | `false` | Show theme selector |
|
|
86
|
+
| `borderRadius` | `'none' \| 'sm' \| 'md' \| 'lg' \| 'full'` | `'md'` | Border radius |
|
|
87
|
+
| `previewSize` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl'` | `'lg'` | Upload icon size |
|
|
88
|
+
| `className` | `string` | `''` | Custom class name |
|
|
89
|
+
| `containerClassName` | `string` | `'max-w-5xl mx-auto mt-10'` | Container styling |
|
|
90
|
+
| **UI Toggles** |
|
|
91
|
+
| `showImageCount` | `boolean` | `true` | Show image count badge |
|
|
92
|
+
| `showFileName` | `boolean` | `true` | Show file name under preview |
|
|
93
|
+
| `showFileSize` | `boolean` | `true` | Show file size under preview |
|
|
94
|
+
| **Custom Button** |
|
|
95
|
+
| `customUploadButton` | `React.ReactNode` | `undefined` | Custom upload button component |
|
|
96
|
+
| `hideDefaultUploadArea` | `boolean` | `false` | Hide default upload area |
|
|
97
|
+
| `onUploadClick` | `() => void` | `undefined` | Callback when upload is clicked |
|
|
100
98
|
|
|
101
99
|
## Examples
|
|
102
100
|
|
|
@@ -109,13 +107,7 @@ import { useState } from "react";
|
|
|
109
107
|
function BasicExample() {
|
|
110
108
|
const [images, setImages] = useState<File[]>([]);
|
|
111
109
|
|
|
112
|
-
return
|
|
113
|
-
<ImageUploader
|
|
114
|
-
images={images}
|
|
115
|
-
setImages={setImages}
|
|
116
|
-
multiple
|
|
117
|
-
/>
|
|
118
|
-
);
|
|
110
|
+
return <ImageUploader images={images} setImages={setImages} multiple />;
|
|
119
111
|
}
|
|
120
112
|
```
|
|
121
113
|
|
|
@@ -123,19 +115,19 @@ function BasicExample() {
|
|
|
123
115
|
|
|
124
116
|
```tsx
|
|
125
117
|
// Nature theme (green) - Default
|
|
126
|
-
<ImageUploader theme="nature" images={images} setImages={setImages} />
|
|
118
|
+
<ImageUploader theme="nature" images={images} setImages={setImages} containerClassName="w-full max-w-2xl mx-auto"/>
|
|
127
119
|
|
|
128
120
|
// Modern theme (neutral/monochrome)
|
|
129
|
-
<ImageUploader theme="modern" images={images} setImages={setImages} />
|
|
121
|
+
<ImageUploader theme="modern" images={images} setImages={setImages} containerClassName="w-full max-w-2xl mx-auto"/>
|
|
130
122
|
|
|
131
123
|
// Fresh theme (blue)
|
|
132
|
-
<ImageUploader theme="fresh" images={images} setImages={setImages} />
|
|
124
|
+
<ImageUploader theme="fresh" images={images} setImages={setImages} containerClassName="w-full max-w-2xl mx-auto"/>
|
|
133
125
|
|
|
134
126
|
// Dark theme (dark gradient with blue accent)
|
|
135
|
-
<ImageUploader theme="dark" images={images} setImages={setImages} />
|
|
127
|
+
<ImageUploader theme="dark" images={images} setImages={setImages} containerClassName="w-full max-w-2xl mx-auto"/>
|
|
136
128
|
|
|
137
129
|
// Ocean theme (blue gradient)
|
|
138
|
-
<ImageUploader theme="ocean" images={images} setImages={setImages} />
|
|
130
|
+
<ImageUploader theme="ocean" images={images} setImages={setImages} containerClassName="w-full max-w-2xl mx-auto"/>
|
|
139
131
|
```
|
|
140
132
|
|
|
141
133
|
### Upload with ImgBB
|
|
@@ -153,14 +145,14 @@ function ImgBBUpload() {
|
|
|
153
145
|
multiple
|
|
154
146
|
theme="nature"
|
|
155
147
|
uploadConfig={{
|
|
156
|
-
provider:
|
|
157
|
-
config: { apiKey: process.env.IMGBB_API_KEY! }
|
|
148
|
+
provider: "imgbb",
|
|
149
|
+
config: { apiKey: process.env.IMGBB_API_KEY! },
|
|
158
150
|
}}
|
|
159
151
|
onUploadComplete={(urls) => {
|
|
160
|
-
console.log(
|
|
152
|
+
console.log("Uploaded URLs:", urls);
|
|
161
153
|
}}
|
|
162
154
|
onUploadError={(error) => {
|
|
163
|
-
console.error(
|
|
155
|
+
console.error("Upload failed:", error.message);
|
|
164
156
|
}}
|
|
165
157
|
/>
|
|
166
158
|
);
|
|
@@ -180,14 +172,14 @@ function CloudinaryUpload() {
|
|
|
180
172
|
multiple
|
|
181
173
|
theme="fresh"
|
|
182
174
|
uploadConfig={{
|
|
183
|
-
provider:
|
|
175
|
+
provider: "cloudinary",
|
|
184
176
|
config: {
|
|
185
177
|
cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME!,
|
|
186
|
-
uploadPreset: process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET
|
|
187
|
-
}
|
|
178
|
+
uploadPreset: process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET!,
|
|
179
|
+
},
|
|
188
180
|
}}
|
|
189
181
|
onUploadComplete={(urls) => {
|
|
190
|
-
console.log(
|
|
182
|
+
console.log("Uploaded URLs:", urls);
|
|
191
183
|
}}
|
|
192
184
|
/>
|
|
193
185
|
);
|
|
@@ -206,8 +198,8 @@ function AutoUploadExample() {
|
|
|
206
198
|
setImages={setImages}
|
|
207
199
|
autoUpload
|
|
208
200
|
uploadConfig={{
|
|
209
|
-
provider:
|
|
210
|
-
config: { apiKey: process.env.IMGBB_API_KEY! }
|
|
201
|
+
provider: "imgbb",
|
|
202
|
+
config: { apiKey: process.env.IMGBB_API_KEY! },
|
|
211
203
|
}}
|
|
212
204
|
onUploadComplete={(urls) => {
|
|
213
205
|
// Automatically upload when images are selected
|
|
@@ -225,8 +217,8 @@ function UpdateExample() {
|
|
|
225
217
|
const [newImages, setNewImages] = useState<File[]>([]);
|
|
226
218
|
|
|
227
219
|
const existingImages = [
|
|
228
|
-
|
|
229
|
-
|
|
220
|
+
"https://example.com/image1.jpg",
|
|
221
|
+
"https://example.com/image2.jpg",
|
|
230
222
|
];
|
|
231
223
|
|
|
232
224
|
return (
|
|
@@ -251,17 +243,17 @@ function CustomThemeExample() {
|
|
|
251
243
|
const [images, setImages] = useState<File[]>([]);
|
|
252
244
|
|
|
253
245
|
const customTheme: CustomTheme = {
|
|
254
|
-
name:
|
|
246
|
+
name: "MyBrand",
|
|
255
247
|
colors: {
|
|
256
|
-
primary:
|
|
257
|
-
primaryHover:
|
|
258
|
-
background:
|
|
259
|
-
border:
|
|
260
|
-
text:
|
|
261
|
-
textSecondary:
|
|
262
|
-
cardBg:
|
|
263
|
-
cardBorder:
|
|
264
|
-
shadow:
|
|
248
|
+
primary: "#FF6B35",
|
|
249
|
+
primaryHover: "#E55A2B",
|
|
250
|
+
background: "#FFF5F0",
|
|
251
|
+
border: "#FFE5D9",
|
|
252
|
+
text: "#2D3142",
|
|
253
|
+
textSecondary: "#4F5D75",
|
|
254
|
+
cardBg: "#FFFFFF",
|
|
255
|
+
cardBorder: "#FFE5D9",
|
|
256
|
+
shadow: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
|
|
265
257
|
},
|
|
266
258
|
};
|
|
267
259
|
|
|
@@ -336,9 +328,9 @@ function ProductGallery() {
|
|
|
336
328
|
|
|
337
329
|
const handleUploadComplete = async (urls: string[]) => {
|
|
338
330
|
// Save to database
|
|
339
|
-
await fetch(
|
|
340
|
-
method:
|
|
341
|
-
headers: {
|
|
331
|
+
await fetch("/api/products/images", {
|
|
332
|
+
method: "POST",
|
|
333
|
+
headers: { "Content-Type": "application/json" },
|
|
342
334
|
body: JSON.stringify({ images: urls }),
|
|
343
335
|
});
|
|
344
336
|
};
|
|
@@ -353,11 +345,11 @@ function ProductGallery() {
|
|
|
353
345
|
theme="nature"
|
|
354
346
|
borderRadius="lg"
|
|
355
347
|
uploadConfig={{
|
|
356
|
-
provider:
|
|
348
|
+
provider: "cloudinary",
|
|
357
349
|
config: {
|
|
358
350
|
cloudName: process.env.CLOUDINARY_CLOUD_NAME!,
|
|
359
|
-
uploadPreset:
|
|
360
|
-
}
|
|
351
|
+
uploadPreset: "products",
|
|
352
|
+
},
|
|
361
353
|
}}
|
|
362
354
|
onUploadComplete={handleUploadComplete}
|
|
363
355
|
/>
|
|
@@ -365,33 +357,89 @@ function ProductGallery() {
|
|
|
365
357
|
}
|
|
366
358
|
```
|
|
367
359
|
|
|
360
|
+
### Custom Upload Button
|
|
361
|
+
|
|
362
|
+
Use your own button for triggering image upload:
|
|
363
|
+
|
|
364
|
+
```tsx
|
|
365
|
+
function CustomButtonExample() {
|
|
366
|
+
const [images, setImages] = useState<File[]>([]);
|
|
367
|
+
|
|
368
|
+
const customButton = (
|
|
369
|
+
<button className="px-6 py-3 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors">
|
|
370
|
+
📷 Choose Images
|
|
371
|
+
</button>
|
|
372
|
+
);
|
|
373
|
+
|
|
374
|
+
return (
|
|
375
|
+
<ImageUploader
|
|
376
|
+
images={images}
|
|
377
|
+
setImages={setImages}
|
|
378
|
+
customUploadButton={customButton}
|
|
379
|
+
hideDefaultUploadArea={true}
|
|
380
|
+
onUploadClick={() => console.log("Upload clicked!")}
|
|
381
|
+
/>
|
|
382
|
+
);
|
|
383
|
+
}
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Custom Button with Default Upload Area
|
|
387
|
+
|
|
388
|
+
Show both your custom button AND the default drag-and-drop area:
|
|
389
|
+
|
|
390
|
+
```tsx
|
|
391
|
+
function HybridExample() {
|
|
392
|
+
const [images, setImages] = useState<File[]>([]);
|
|
393
|
+
|
|
394
|
+
const quickUploadBtn = (
|
|
395
|
+
<button className="px-4 py-2 bg-gradient-to-r from-purple-500 to-pink-500 text-white rounded-lg font-medium">
|
|
396
|
+
Quick Upload
|
|
397
|
+
</button>
|
|
398
|
+
);
|
|
399
|
+
|
|
400
|
+
return (
|
|
401
|
+
<ImageUploader
|
|
402
|
+
images={images}
|
|
403
|
+
setImages={setImages}
|
|
404
|
+
customUploadButton={quickUploadBtn}
|
|
405
|
+
// Don't hide the default area - users get both options!
|
|
406
|
+
/>
|
|
407
|
+
);
|
|
408
|
+
}
|
|
409
|
+
```
|
|
410
|
+
|
|
368
411
|
## Built-in Themes
|
|
369
412
|
|
|
370
413
|
### Nature (Green)
|
|
414
|
+
|
|
371
415
|
- Soft greens with organic feel
|
|
372
416
|
- Primary: `#16a34a`
|
|
373
417
|
- Background: `#f0fdf4`
|
|
374
418
|
- Perfect for: Nature, health, eco-friendly apps
|
|
375
419
|
|
|
376
420
|
### Modern (Neutral)
|
|
421
|
+
|
|
377
422
|
- Clean monochrome design
|
|
378
423
|
- Primary: `#09090b`
|
|
379
424
|
- Background: `#fafafa`
|
|
380
425
|
- Perfect for: Professional apps, portfolios, dashboards
|
|
381
426
|
|
|
382
427
|
### Fresh (Blue)
|
|
428
|
+
|
|
383
429
|
- Light blue airy design
|
|
384
430
|
- Primary: `#0284c7`
|
|
385
431
|
- Background: `#f0f9ff`
|
|
386
432
|
- Perfect for: Social apps, SaaS, modern web apps
|
|
387
433
|
|
|
388
434
|
### Dark (Dark Gradient)
|
|
435
|
+
|
|
389
436
|
- Dark gradient with blue accent
|
|
390
437
|
- Primary: `#3b82f6`
|
|
391
438
|
- Background: `linear-gradient(135deg, #1e293b 0%, #0f172a 100%)`
|
|
392
439
|
- Perfect for: Dark mode apps, modern interfaces
|
|
393
440
|
|
|
394
441
|
### Ocean (Blue Gradient)
|
|
442
|
+
|
|
395
443
|
- Beautiful blue to purple gradient
|
|
396
444
|
- Primary: `#06b6d4`
|
|
397
445
|
- Background: `linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%)`
|
|
@@ -402,31 +450,31 @@ function ProductGallery() {
|
|
|
402
450
|
### Border Radius Options
|
|
403
451
|
|
|
404
452
|
```tsx
|
|
405
|
-
borderRadius="none"
|
|
406
|
-
borderRadius="sm"
|
|
407
|
-
borderRadius="md"
|
|
408
|
-
borderRadius="lg"
|
|
409
|
-
borderRadius="full"
|
|
453
|
+
borderRadius = "none"; // 0
|
|
454
|
+
borderRadius = "sm"; // 0.25rem
|
|
455
|
+
borderRadius = "md"; // 0.375rem (default)
|
|
456
|
+
borderRadius = "lg"; // 0.5rem
|
|
457
|
+
borderRadius = "full"; // 9999px (circular)
|
|
410
458
|
```
|
|
411
459
|
|
|
412
460
|
### Preview Size Options
|
|
413
461
|
|
|
414
462
|
```tsx
|
|
415
|
-
previewSize="xs"
|
|
416
|
-
previewSize="sm"
|
|
417
|
-
previewSize="md"
|
|
418
|
-
previewSize="lg"
|
|
419
|
-
previewSize="xl"
|
|
420
|
-
previewSize="2xl"
|
|
463
|
+
previewSize = "xs"; // Extra small (40px)
|
|
464
|
+
previewSize = "sm"; // Small (48px)
|
|
465
|
+
previewSize = "md"; // Medium (56px)
|
|
466
|
+
previewSize = "lg"; // Large (64px) - default
|
|
467
|
+
previewSize = "xl"; // Extra large (80px)
|
|
468
|
+
previewSize = "2xl"; // Double extra large (96px)
|
|
421
469
|
```
|
|
422
470
|
|
|
423
471
|
### Show/Hide Elements
|
|
424
472
|
|
|
425
473
|
```tsx
|
|
426
474
|
<ImageUploader
|
|
427
|
-
showImageCount={false}
|
|
428
|
-
showFileName={false}
|
|
429
|
-
showFileSize={false}
|
|
475
|
+
showImageCount={false} // Hide image count badge
|
|
476
|
+
showFileName={false} // Hide file names
|
|
477
|
+
showFileSize={false} // Hide file sizes
|
|
430
478
|
/>
|
|
431
479
|
```
|
|
432
480
|
|
|
@@ -465,12 +513,17 @@ uploadConfig={{
|
|
|
465
513
|
Full TypeScript support:
|
|
466
514
|
|
|
467
515
|
```tsx
|
|
468
|
-
import type {
|
|
516
|
+
import type {
|
|
517
|
+
ImageUploaderProps,
|
|
518
|
+
ThemeName,
|
|
519
|
+
CustomTheme,
|
|
520
|
+
} from "ultra-image-uploader";
|
|
469
521
|
```
|
|
470
522
|
|
|
471
523
|
## Animations
|
|
472
524
|
|
|
473
525
|
The component includes smooth, performance-friendly animations:
|
|
526
|
+
|
|
474
527
|
- Drag-over state with border color change
|
|
475
528
|
- Fade-in for image previews
|
|
476
529
|
- Hover effects with shadow and scale
|
|
@@ -489,6 +542,7 @@ The component includes smooth, performance-friendly animations:
|
|
|
489
542
|
## Responsive Design
|
|
490
543
|
|
|
491
544
|
The grid layout adapts to screen sizes:
|
|
545
|
+
|
|
492
546
|
- Mobile (2 columns): 320px+
|
|
493
547
|
- Tablet (3 columns): 640px+
|
|
494
548
|
- Desktop (4 columns): 768px+
|
|
@@ -511,16 +565,19 @@ The component includes built-in API key validation and displays errors inline:
|
|
|
511
565
|
If your API key is missing or invalid, the component will automatically display an error message:
|
|
512
566
|
|
|
513
567
|
**ImgBB Errors:**
|
|
568
|
+
|
|
514
569
|
- "ImgBB API key is missing. Please provide a valid API key in the uploadConfig."
|
|
515
570
|
- "ImgBB API key cannot be empty."
|
|
516
571
|
|
|
517
572
|
**Cloudinary Errors:**
|
|
573
|
+
|
|
518
574
|
- "Cloudinary cloud name is missing. Please provide a valid cloud name in the uploadConfig."
|
|
519
575
|
- "Cloudinary cloud name cannot be empty."
|
|
520
576
|
|
|
521
577
|
### Error Display
|
|
522
578
|
|
|
523
579
|
Errors appear in a dismissible alert box below the header with:
|
|
580
|
+
|
|
524
581
|
- Red error icon
|
|
525
582
|
- Clear error message
|
|
526
583
|
- Dismiss button to clear the error
|
|
@@ -534,11 +591,11 @@ You can also handle errors programmatically using the `onUploadError` callback:
|
|
|
534
591
|
images={images}
|
|
535
592
|
setImages={setImages}
|
|
536
593
|
uploadConfig={{
|
|
537
|
-
provider:
|
|
538
|
-
config: { apiKey: process.env.IMGBB_API_KEY! }
|
|
594
|
+
provider: "imgbb",
|
|
595
|
+
config: { apiKey: process.env.IMGBB_API_KEY! },
|
|
539
596
|
}}
|
|
540
597
|
onUploadError={(error) => {
|
|
541
|
-
console.error(
|
|
598
|
+
console.error("Upload failed:", error);
|
|
542
599
|
// Show custom notification
|
|
543
600
|
toast.error(error.message);
|
|
544
601
|
}}
|
|
@@ -548,16 +605,19 @@ You can also handle errors programmatically using the `onUploadError` callback:
|
|
|
548
605
|
## Troubleshooting
|
|
549
606
|
|
|
550
607
|
### Auto imports not working
|
|
608
|
+
|
|
551
609
|
- Restart TypeScript server in your editor (Cmd+Shift+P > "Restart TypeScript Server")
|
|
552
610
|
- Ensure `node_modules` exists (`npm install`)
|
|
553
611
|
|
|
554
612
|
### Images not uploading
|
|
613
|
+
|
|
555
614
|
- Verify API credentials in environment variables
|
|
556
615
|
- Check browser console for errors
|
|
557
616
|
- Ensure CORS is configured for your upload provider
|
|
558
617
|
- Look for inline error messages in the component
|
|
559
618
|
|
|
560
619
|
### Theme not applying
|
|
620
|
+
|
|
561
621
|
- Check that theme name matches: `'nature'` | `'modern'` | `'fresh'` | `'dark'` | `'ocean'`
|
|
562
622
|
- For custom themes, verify the structure matches `CustomTheme` type
|
|
563
623
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { UploadProvider, ProviderConfig } from "../types";
|
|
2
3
|
export declare const themes: {
|
|
3
4
|
nature: {
|
|
4
5
|
name: string;
|
|
@@ -72,11 +73,11 @@ export declare const themes: {
|
|
|
72
73
|
};
|
|
73
74
|
};
|
|
74
75
|
export type ThemeName = keyof typeof themes;
|
|
75
|
-
export type CustomTheme = typeof themes[ThemeName];
|
|
76
|
+
export type CustomTheme = (typeof themes)[ThemeName];
|
|
76
77
|
export interface ImageUploaderProps {
|
|
77
78
|
images: File[];
|
|
78
79
|
setImages: (images: File[]) => void;
|
|
79
|
-
mode?:
|
|
80
|
+
mode?: "add" | "update";
|
|
80
81
|
defaultImages?: string[];
|
|
81
82
|
multiple?: boolean;
|
|
82
83
|
maxSize?: number;
|
|
@@ -92,13 +93,16 @@ export interface ImageUploaderProps {
|
|
|
92
93
|
theme?: ThemeName;
|
|
93
94
|
customTheme?: CustomTheme;
|
|
94
95
|
showThemeSelector?: boolean;
|
|
95
|
-
previewSize?:
|
|
96
|
-
borderRadius?:
|
|
96
|
+
previewSize?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
97
|
+
borderRadius?: "none" | "sm" | "md" | "lg" | "full";
|
|
97
98
|
className?: string;
|
|
98
99
|
containerClassName?: string;
|
|
99
100
|
showImageCount?: boolean;
|
|
100
101
|
showFileSize?: boolean;
|
|
101
102
|
showFileName?: boolean;
|
|
103
|
+
customUploadButton?: React.ReactNode;
|
|
104
|
+
hideDefaultUploadArea?: boolean;
|
|
105
|
+
onUploadClick?: () => void;
|
|
102
106
|
}
|
|
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;
|
|
107
|
+
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, customUploadButton, hideDefaultUploadArea, onUploadClick, }: ImageUploaderProps): import("react/jsx-runtime").JSX.Element;
|
|
104
108
|
//# sourceMappingURL=ImageUploader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ImageUploader.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,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,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;AAErD,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;IAGvB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAiBD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,IAAY,EACZ,aAAkB,EAClB,QAAe,EACf,OAA0B,EAC1B,YAOC,EACD,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,EACnB,kBAAkB,EAClB,qBAA6B,EAC7B,aAAa,GACd,EAAE,kBAAkB,2CA8nBpB"}
|
|
@@ -1,90 +1,97 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useRef, useCallback, useEffect } from
|
|
4
|
-
import { Upload, Image as ImageIcon, Loader2, Trash2 } from
|
|
5
|
-
import { uploadImage } from
|
|
6
|
-
import { isImageFile, formatFileSize } from
|
|
3
|
+
import { useState, useRef, useCallback, useEffect } from "react";
|
|
4
|
+
import { Upload, Image as ImageIcon, Loader2, Trash2 } from "lucide-react";
|
|
5
|
+
import { uploadImage } from "../providers";
|
|
6
|
+
import { isImageFile, formatFileSize } from "../utils/validation";
|
|
7
7
|
// Theme definitions - shadcn/ui inspired
|
|
8
8
|
export const themes = {
|
|
9
9
|
nature: {
|
|
10
|
-
name:
|
|
10
|
+
name: "Nature",
|
|
11
11
|
colors: {
|
|
12
|
-
primary:
|
|
13
|
-
primaryHover:
|
|
14
|
-
background:
|
|
15
|
-
border:
|
|
16
|
-
text:
|
|
17
|
-
textSecondary:
|
|
18
|
-
cardBg:
|
|
19
|
-
cardBorder:
|
|
20
|
-
shadow:
|
|
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
21
|
},
|
|
22
22
|
},
|
|
23
23
|
modern: {
|
|
24
|
-
name:
|
|
24
|
+
name: "Modern",
|
|
25
25
|
colors: {
|
|
26
|
-
primary:
|
|
27
|
-
primaryHover:
|
|
28
|
-
background:
|
|
29
|
-
border:
|
|
30
|
-
text:
|
|
31
|
-
textSecondary:
|
|
32
|
-
cardBg:
|
|
33
|
-
cardBorder:
|
|
34
|
-
shadow:
|
|
26
|
+
primary: "#09090b",
|
|
27
|
+
primaryHover: "#18181b",
|
|
28
|
+
background: "#fafafa",
|
|
29
|
+
border: "#e4e4e7",
|
|
30
|
+
text: "#18181b",
|
|
31
|
+
textSecondary: "#71717a",
|
|
32
|
+
cardBg: "#ffffff",
|
|
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)",
|
|
35
35
|
},
|
|
36
36
|
},
|
|
37
37
|
fresh: {
|
|
38
|
-
name:
|
|
38
|
+
name: "Fresh",
|
|
39
39
|
colors: {
|
|
40
|
-
primary:
|
|
41
|
-
primaryHover:
|
|
42
|
-
background:
|
|
43
|
-
border:
|
|
44
|
-
text:
|
|
45
|
-
textSecondary:
|
|
46
|
-
cardBg:
|
|
47
|
-
cardBorder:
|
|
48
|
-
shadow:
|
|
40
|
+
primary: "#0284c7",
|
|
41
|
+
primaryHover: "#0369a1",
|
|
42
|
+
background: "#f0f9ff",
|
|
43
|
+
border: "#bae6fd",
|
|
44
|
+
text: "#0c4a6e",
|
|
45
|
+
textSecondary: "#075985",
|
|
46
|
+
cardBg: "#ffffff",
|
|
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)",
|
|
49
49
|
},
|
|
50
50
|
},
|
|
51
51
|
dark: {
|
|
52
|
-
name:
|
|
52
|
+
name: "Dark",
|
|
53
53
|
colors: {
|
|
54
|
-
primary:
|
|
55
|
-
primaryHover:
|
|
56
|
-
background:
|
|
57
|
-
border:
|
|
58
|
-
text:
|
|
59
|
-
textSecondary:
|
|
60
|
-
cardBg:
|
|
61
|
-
cardBorder:
|
|
62
|
-
shadow:
|
|
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)",
|
|
63
63
|
},
|
|
64
64
|
},
|
|
65
65
|
ocean: {
|
|
66
|
-
name:
|
|
66
|
+
name: "Ocean",
|
|
67
67
|
colors: {
|
|
68
|
-
primary:
|
|
69
|
-
primaryHover:
|
|
70
|
-
background:
|
|
71
|
-
border:
|
|
72
|
-
text:
|
|
73
|
-
textSecondary:
|
|
74
|
-
cardBg:
|
|
75
|
-
cardBorder:
|
|
76
|
-
shadow:
|
|
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:
|
|
82
|
-
sm:
|
|
83
|
-
md:
|
|
84
|
-
lg:
|
|
85
|
-
full:
|
|
81
|
+
none: "0",
|
|
82
|
+
sm: "0.25rem",
|
|
83
|
+
md: "0.375rem",
|
|
84
|
+
lg: "0.5rem",
|
|
85
|
+
full: "9999px",
|
|
86
86
|
};
|
|
87
|
-
export function ImageUploader({ images, setImages, mode =
|
|
87
|
+
export function ImageUploader({ images, setImages, mode = "add", defaultImages = [], multiple = true, maxSize = 50 * 1024 * 1024, allowedTypes = [
|
|
88
|
+
"image/jpeg",
|
|
89
|
+
"image/jpg",
|
|
90
|
+
"image/png",
|
|
91
|
+
"image/webp",
|
|
92
|
+
"image/gif",
|
|
93
|
+
"image/svg+xml",
|
|
94
|
+
], 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, customUploadButton, hideDefaultUploadArea = false, onUploadClick, }) {
|
|
88
95
|
const [selectedTheme, setSelectedTheme] = useState(theme);
|
|
89
96
|
const [isDragging, setIsDragging] = useState(false);
|
|
90
97
|
const [fileStates, setFileStates] = useState(new Map());
|
|
@@ -106,8 +113,15 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
106
113
|
newStates.set(key, existing);
|
|
107
114
|
}
|
|
108
115
|
else {
|
|
109
|
-
const preview = isImageFile(file)
|
|
110
|
-
|
|
116
|
+
const preview = isImageFile(file)
|
|
117
|
+
? URL.createObjectURL(file)
|
|
118
|
+
: undefined;
|
|
119
|
+
newStates.set(key, {
|
|
120
|
+
...file,
|
|
121
|
+
progress: 0,
|
|
122
|
+
status: "pending",
|
|
123
|
+
preview,
|
|
124
|
+
});
|
|
111
125
|
}
|
|
112
126
|
});
|
|
113
127
|
setFileStates(newStates);
|
|
@@ -122,20 +136,20 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
122
136
|
const validateUploadConfig = useCallback(() => {
|
|
123
137
|
if (!uploadConfig)
|
|
124
138
|
return null;
|
|
125
|
-
if (uploadConfig.provider ===
|
|
139
|
+
if (uploadConfig.provider === "imgbb") {
|
|
126
140
|
if (!uploadConfig.config.apiKey) {
|
|
127
|
-
return
|
|
141
|
+
return "ImgBB API key is missing. Please provide a valid API key in the uploadConfig.";
|
|
128
142
|
}
|
|
129
|
-
if (uploadConfig.config.apiKey.trim() ===
|
|
130
|
-
return
|
|
143
|
+
if (uploadConfig.config.apiKey.trim() === "") {
|
|
144
|
+
return "ImgBB API key cannot be empty.";
|
|
131
145
|
}
|
|
132
146
|
}
|
|
133
|
-
if (uploadConfig.provider ===
|
|
147
|
+
if (uploadConfig.provider === "cloudinary") {
|
|
134
148
|
if (!uploadConfig.config.cloudName) {
|
|
135
|
-
return
|
|
149
|
+
return "Cloudinary cloud name is missing. Please provide a valid cloud name in the uploadConfig.";
|
|
136
150
|
}
|
|
137
|
-
if (uploadConfig.config.cloudName.trim() ===
|
|
138
|
-
return
|
|
151
|
+
if (uploadConfig.config.cloudName.trim() === "") {
|
|
152
|
+
return "Cloudinary cloud name cannot be empty.";
|
|
139
153
|
}
|
|
140
154
|
}
|
|
141
155
|
return null;
|
|
@@ -157,7 +171,7 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
157
171
|
const key = `${file.name}-${file.size}`;
|
|
158
172
|
setFileStates((prev) => {
|
|
159
173
|
const next = new Map(prev);
|
|
160
|
-
next.set(key, { ...file, progress: 0, status:
|
|
174
|
+
next.set(key, { ...file, progress: 0, status: "uploading" });
|
|
161
175
|
return next;
|
|
162
176
|
});
|
|
163
177
|
const result = await uploadImage(file, uploadConfig.provider, uploadConfig.config, {
|
|
@@ -176,7 +190,7 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
176
190
|
const next = new Map(prev);
|
|
177
191
|
const current = next.get(key);
|
|
178
192
|
if (current) {
|
|
179
|
-
next.set(key, { ...current, progress: 100, status:
|
|
193
|
+
next.set(key, { ...current, progress: 100, status: "done" });
|
|
180
194
|
}
|
|
181
195
|
return next;
|
|
182
196
|
});
|
|
@@ -186,7 +200,7 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
186
200
|
onUploadComplete?.(urls);
|
|
187
201
|
}
|
|
188
202
|
catch (err) {
|
|
189
|
-
const errorMessage = err instanceof Error ? err.message :
|
|
203
|
+
const errorMessage = err instanceof Error ? err.message : "Upload failed";
|
|
190
204
|
setError(errorMessage);
|
|
191
205
|
onUploadError?.(err instanceof Error ? err : new Error(errorMessage));
|
|
192
206
|
}
|
|
@@ -218,7 +232,7 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
218
232
|
if (valid.length === 0)
|
|
219
233
|
return;
|
|
220
234
|
if (!multiple && valid.length > 1) {
|
|
221
|
-
alert(
|
|
235
|
+
alert("Only one file allowed");
|
|
222
236
|
return;
|
|
223
237
|
}
|
|
224
238
|
setImages(multiple ? [...images, ...valid] : [valid[0]]);
|
|
@@ -226,9 +240,13 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
226
240
|
const handleChange = (e) => {
|
|
227
241
|
if (e.target.files?.length) {
|
|
228
242
|
handleFiles(e.target.files);
|
|
229
|
-
e.target.value =
|
|
243
|
+
e.target.value = "";
|
|
230
244
|
}
|
|
231
245
|
};
|
|
246
|
+
const handleUploadClick = () => {
|
|
247
|
+
onUploadClick?.();
|
|
248
|
+
fileInputRef.current?.click();
|
|
249
|
+
};
|
|
232
250
|
const handleDragEnter = (e) => {
|
|
233
251
|
e.preventDefault();
|
|
234
252
|
e.stopPropagation();
|
|
@@ -263,70 +281,81 @@ export function ImageUploader({ images, setImages, mode = 'add', defaultImages =
|
|
|
263
281
|
};
|
|
264
282
|
const getFileState = (file) => {
|
|
265
283
|
const key = `${file.name}-${file.size}`;
|
|
266
|
-
return fileStates.get(key) || { ...file, progress: 0, status:
|
|
284
|
+
return fileStates.get(key) || { ...file, progress: 0, status: "pending" };
|
|
267
285
|
};
|
|
268
|
-
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 ===
|
|
286
|
+
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
|
|
287
|
+
? "Drag and drop or click to upload"
|
|
288
|
+
: "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: {
|
|
269
289
|
backgroundColor: t.cardBg,
|
|
270
290
|
borderColor: t.cardBorder,
|
|
271
291
|
color: t.text,
|
|
272
|
-
}, children: [_jsx("span", { children: images.length }), maxImages && _jsxs("span", { className: "text-muted", style: { color: t.textSecondary }, children: ["/ ", maxImages] })] }))] }), error && (_jsxs("div", { className: "mb-4 p-4 rounded-md border flex items-start gap-3", style: { backgroundColor:
|
|
273
|
-
backgroundColor: selectedTheme === key ? t.cardBg :
|
|
292
|
+
}, children: [_jsx("span", { children: images.length }), maxImages && (_jsxs("span", { className: "text-muted", style: { color: t.textSecondary }, children: ["/ ", maxImages] }))] }))] }), error && (_jsxs("div", { className: "mb-4 p-4 rounded-md border flex items-start gap-3", style: { backgroundColor: "#fef2f2", borderColor: "#fecaca" }, children: [_jsx("div", { className: "flex-shrink-0", children: _jsx("svg", { className: "w-5 h-5", style: { color: "#dc2626" }, fill: "currentColor", viewBox: "0 0 20 20", children: _jsx("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z", clipRule: "evenodd" }) }) }), _jsxs("div", { className: "flex-1", children: [_jsx("p", { className: "text-sm font-medium", style: { color: "#991b1b" }, children: "Upload Error" }), _jsx("p", { className: "text-sm mt-1", style: { color: "#b91c1c" }, children: error })] }), _jsxs("button", { onClick: () => setError(null), className: "flex-shrink-0 inline-flex rounded-md p-1.5 focus:outline-none focus:ring-2 focus:ring-offset-2", style: { color: "#991b1b" }, "aria-label": "Dismiss error", children: [_jsx("span", { className: "sr-only", children: "Dismiss" }), _jsx("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: _jsx("path", { fillRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z", clipRule: "evenodd" }) })] })] })), 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: {
|
|
293
|
+
backgroundColor: selectedTheme === key ? t.cardBg : "transparent",
|
|
274
294
|
color: selectedTheme === key ? t.text : t.textSecondary,
|
|
275
|
-
}, children: themes[key].name }, key))) })),
|
|
295
|
+
}, children: themes[key].name }, key))) })), customUploadButton && (_jsx("div", { className: "mb-4", children: _jsx("div", { onClick: handleUploadClick, children: customUploadButton }) })), _jsx("input", { ref: fileInputRef, type: "file", accept: allowedTypes.join(","), multiple: multiple, onChange: handleChange, className: "hidden", style: { display: "none" } }), !hideDefaultUploadArea && (_jsx("div", { role: "button", tabIndex: 0, "aria-label": "Upload images", className: "relative group cursor-pointer overflow-hidden transition-all duration-200", style: {
|
|
276
296
|
borderRadius: radius,
|
|
277
297
|
border: `2px dashed ${isDragging ? t.primary : t.cardBorder}`,
|
|
278
298
|
backgroundColor: t.background,
|
|
279
|
-
}, onClick:
|
|
280
|
-
if (e.key ===
|
|
299
|
+
}, onClick: handleUploadClick, onKeyDown: (e) => {
|
|
300
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
281
301
|
e.preventDefault();
|
|
282
|
-
|
|
302
|
+
handleUploadClick();
|
|
283
303
|
}
|
|
284
|
-
}, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, children:
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
304
|
+
}, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, children: _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: {
|
|
305
|
+
width: previewSize === "2xl"
|
|
306
|
+
? "96px"
|
|
307
|
+
: previewSize === "xl"
|
|
308
|
+
? "80px"
|
|
309
|
+
: previewSize === "lg"
|
|
310
|
+
? "64px"
|
|
311
|
+
: previewSize === "md"
|
|
312
|
+
? "56px"
|
|
313
|
+
: previewSize === "sm"
|
|
314
|
+
? "48px"
|
|
315
|
+
: "20px",
|
|
316
|
+
height: previewSize === "2xl"
|
|
317
|
+
? "96px"
|
|
318
|
+
: previewSize === "xl"
|
|
319
|
+
? "80px"
|
|
320
|
+
: previewSize === "lg"
|
|
321
|
+
? "64px"
|
|
322
|
+
: previewSize === "md"
|
|
323
|
+
? "56px"
|
|
324
|
+
: previewSize === "sm"
|
|
325
|
+
? "48px"
|
|
326
|
+
: "20px",
|
|
327
|
+
backgroundColor: t.cardBg,
|
|
328
|
+
border: `1px solid ${t.cardBorder}`,
|
|
329
|
+
}, 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" &&
|
|
330
|
+
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: {
|
|
300
331
|
borderRadius: radius,
|
|
301
332
|
borderColor: t.cardBorder,
|
|
302
333
|
backgroundColor: t.cardBg,
|
|
303
334
|
}, 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 transition-opacity duration-200 hover:opacity-80", style: {
|
|
304
|
-
backgroundColor:
|
|
305
|
-
backdropFilter:
|
|
335
|
+
backgroundColor: "rgba(0,0,0,0.7)",
|
|
336
|
+
backdropFilter: "blur(4px)",
|
|
337
|
+
zIndex: 10,
|
|
306
338
|
}, "aria-label": "Remove image", children: _jsx(Trash2, { size: 14, className: "text-white" }) })] }) }, `default-${index}`))), images.map((file, index) => {
|
|
307
339
|
const state = getFileState(file);
|
|
308
|
-
const isUploading = state.status ===
|
|
309
|
-
const isDone = state.status ===
|
|
310
|
-
return (_jsxs("div", { className: "relative group aspect-square", style: {
|
|
340
|
+
const isUploading = state.status === "uploading";
|
|
341
|
+
const isDone = state.status === "done";
|
|
342
|
+
return (_jsxs("div", { className: "relative group aspect-square", style: {
|
|
343
|
+
animation: "fadeIn 0.2s ease-out",
|
|
344
|
+
animationDelay: `${index * 30}ms`,
|
|
345
|
+
}, children: [_jsxs("div", { className: "relative w-full h-full overflow-hidden border transition-all duration-200 hover:shadow-md", style: {
|
|
311
346
|
borderRadius: radius,
|
|
312
347
|
borderColor: t.cardBorder,
|
|
313
348
|
backgroundColor: t.cardBg,
|
|
314
349
|
}, 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 transition-opacity duration-200 hover:opacity-80", style: {
|
|
315
|
-
backgroundColor:
|
|
316
|
-
backdropFilter:
|
|
350
|
+
backgroundColor: "rgba(0,0,0,0.7)",
|
|
351
|
+
backdropFilter: "blur(4px)",
|
|
352
|
+
zIndex: 10,
|
|
317
353
|
}, "aria-label": "Remove image", children: _jsx(Trash2, { 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: {
|
|
318
|
-
boxShadow:
|
|
354
|
+
boxShadow: "0 4px 12px rgba(34, 197, 94, 0.4)",
|
|
319
355
|
}, 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}`));
|
|
320
|
-
})] }) })), images.length > 0 && !autoUpload && uploadConfig && (
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
}, className: "px-4 py-2 text-sm font-medium rounded-md border transition-colors duration-200 hover:bg-opacity-80", style: {
|
|
324
|
-
backgroundColor: t.cardBg,
|
|
325
|
-
color: t.text,
|
|
326
|
-
borderColor: t.cardBorder,
|
|
327
|
-
}, 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: {
|
|
328
|
-
backgroundColor: t.primary,
|
|
329
|
-
}, 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: `
|
|
356
|
+
})] }) })), images.length > 0 && !autoUpload && uploadConfig && (_jsx("div", { className: "mt-6 flex items-center justify-end", children: _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: {
|
|
357
|
+
backgroundColor: t.primary,
|
|
358
|
+
}, 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: `
|
|
330
359
|
@keyframes fadeIn {
|
|
331
360
|
from {
|
|
332
361
|
opacity: 0;
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultra-image-uploader",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.5",
|
|
4
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",
|