ultra-image-uploader 2.0.2 → 2.0.4

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, fancy React image upload component with responsive grid layout, drag-and-drop reordering, and beautiful animations.
5
+ A modern, fancy React image upload component with responsive grid layout, beautiful themes, and smooth animations.
6
6
 
7
7
  [![npm version](https://badge.fury.io/js/ultra-image-uploader.svg)](https://www.npmjs.com/package/ultra-image-uploader)
8
8
  ![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue)
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-green)](https://opensource.org/licenses/MIT)
10
10
 
11
- **Modern UI** • **Dark/Light Themes** • **Grid Layout** • **Drag Reorder**
11
+ **Modern UI** • **Beautiful Themes** • **Grid Layout** • **Smooth Animations**
12
12
 
13
13
  </div>
14
14
 
@@ -17,17 +17,18 @@ A modern, fancy React image upload component with responsive grid layout, drag-a
17
17
  ## Features
18
18
 
19
19
  - **Modern UI** - Beautiful card-based design with shadows and rounded corners
20
- - **Responsive Grid** - Adaptive grid layout (2-6 columns) for all screen sizes
20
+ - **5 Built-in Themes** - Modern, Fresh, Nature, Ocean, and Sunset themes
21
+ - **Responsive Grid** - Adaptive grid layout (2-5 columns) for all screen sizes
21
22
  - **Drag & Drop** - Upload files by dragging or clicking
22
23
  - **Live Previews** - Instant image thumbnails with metadata
23
- - **Drag Reorder** - Rearrange images by dragging
24
24
  - **Progress Tracking** - Real-time upload progress with animations
25
- - **Theme Support** - Built-in light/dark theme toggle
26
25
  - **Smooth Animations** - Hover effects, fade transitions, scale animations
26
+ - **Custom Themes** - Create your own theme with custom colors
27
27
  - **Keyboard Accessible** - Full keyboard navigation support
28
28
  - **File Validation** - Size and type validation
29
29
  - **Multiple Providers** - ImgBB & Cloudinary support
30
30
  - **Auto Import** - Works with VS Code, WebStorm, and all editors
31
+ - **Remove Images** - Remove button on all image previews
31
32
 
32
33
  ## Installation
33
34
 
@@ -59,7 +60,6 @@ function App() {
59
60
  images={images}
60
61
  setImages={setImages}
61
62
  multiple
62
- gridCols={4}
63
63
  />
64
64
  );
65
65
  }
@@ -71,20 +71,18 @@ function App() {
71
71
  |------|------|---------|-------------|
72
72
  | `images` | `File[]` | **Required** | Selected image files |
73
73
  | `setImages` | `(files: File[]) => void` | **Required** | Update images state |
74
+ | `mode` | `'add' \| 'update'` | `'add'` | Upload mode |
75
+ | `defaultImages` | `string[]` | `[]` | Default images (update mode) |
74
76
  | `multiple` | `boolean` | `true` | Allow multiple files |
75
77
  | `maxSize` | `number` | `52428800` | Max file size (50MB) |
76
78
  | `allowedTypes` | `string[]` | Image types | Allowed MIME types |
77
79
  | `maxImages` | `number` | `20` | Maximum images allowed |
78
- | `theme` | `'light' \| 'dark'` | `undefined` | Theme (uses internal if not set) |
79
- | `onThemeChange` | `(theme) => void` | `undefined` | Theme change callback |
80
- | `showThemeToggle` | `boolean` | `true` | Show theme toggle button |
80
+ | `className` | `string` | `''` | Custom class name |
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 |
81
85
  | `showImageCount` | `boolean` | `true` | Show image count header |
82
- | `enableReorder` | `boolean` | `true` | Enable drag reordering |
83
- | `gridCols` | `number` | `4` | Grid columns (2-6) |
84
- | `cardClassName` | `string` | `''` | Custom card class |
85
- | `containerClassName` | `string` | `'max-w-5xl mx-auto'` | Container styling |
86
- | `uploadText` | `string` | `'Click or drag...'` | Upload area text |
87
- | `dragText` | `string` | `'Drop images here'` | Drag over text |
88
86
  | `autoUpload` | `boolean` | `false` | Auto-upload on selection |
89
87
  | `uploadConfig` | `{ provider, config }` | `undefined` | Upload configuration |
90
88
  | `onUploadComplete` | `(urls: string[]) => void` | `undefined` | Success callback |
@@ -92,64 +90,105 @@ function App() {
92
90
 
93
91
  ## Examples
94
92
 
95
- ### Basic Grid Layout
93
+ ### Basic Usage
96
94
 
97
95
  ```tsx
98
96
  <ImageUploader
99
97
  images={images}
100
98
  setImages={setImages}
101
99
  multiple
102
- gridCols={4}
103
100
  />
104
101
  ```
105
102
 
106
- ### Dark Theme
103
+ ### Different Themes
107
104
 
108
105
  ```tsx
109
- function DarkExample() {
110
- const [theme, setTheme] = useState<'light' | 'dark'>('dark');
111
- const [images, setImages] = useState<File[]>([]);
112
-
113
- return (
114
- <div className={theme === 'dark' ? 'dark' : ''}>
115
- <ImageUploader
116
- images={images}
117
- setImages={setImages}
118
- theme={theme}
119
- onThemeChange={setTheme}
120
- multiple
121
- gridCols={3}
122
- />
123
- </div>
124
- );
125
- }
126
- ```
106
+ // Modern theme (purple gradient)
107
+ <ImageUploader
108
+ images={images}
109
+ setImages={setImages}
110
+ theme="modern"
111
+ />
127
112
 
128
- ### Custom Grid & Styling
113
+ // Fresh theme (mint/rose gradient)
114
+ <ImageUploader
115
+ images={images}
116
+ setImages={setImages}
117
+ theme="fresh"
118
+ />
129
119
 
130
- ```tsx
120
+ // Nature theme (green gradient)
131
121
  <ImageUploader
132
122
  images={images}
133
123
  setImages={setImages}
134
- gridCols={3}
135
- maxImages={10}
136
- maxSize={10 * 1024 * 1024}
137
- containerClassName="max-w-4xl mx-auto"
138
- cardClassName="border-2"
124
+ theme="nature"
139
125
  />
140
- ```
141
126
 
142
- ### Without Reordering
127
+ // Ocean theme (blue gradient)
128
+ <ImageUploader
129
+ images={images}
130
+ setImages={setImages}
131
+ theme="ocean"
132
+ />
143
133
 
144
- ```tsx
134
+ // Sunset theme (orange gradient)
145
135
  <ImageUploader
146
136
  images={images}
147
137
  setImages={setImages}
148
- enableReorder={false}
149
- gridCols={5}
138
+ theme="sunset"
150
139
  />
151
140
  ```
152
141
 
142
+ ### Custom Theme
143
+
144
+ ```tsx
145
+ function CustomThemeExample() {
146
+ const [images, setImages] = useState<File[]>([]);
147
+
148
+ const customTheme = {
149
+ name: 'Corporate',
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
+ };
162
+
163
+ return (
164
+ <ImageUploader
165
+ images={images}
166
+ setImages={setImages}
167
+ customTheme={customTheme}
168
+ showThemeSelector={false}
169
+ />
170
+ );
171
+ }
172
+ ```
173
+
174
+ ### Update Mode
175
+
176
+ ```tsx
177
+ function UpdateExample() {
178
+ const [images, setImages] = useState<File[]>([]);
179
+
180
+ return (
181
+ <ImageUploader
182
+ images={images}
183
+ setImages={setImages}
184
+ mode="update"
185
+ defaultImages={['https://example.com/image1.jpg', 'https://example.com/image2.jpg']}
186
+ theme="ocean"
187
+ />
188
+ );
189
+ }
190
+ ```
191
+
153
192
  ### With Upload (ImgBB)
154
193
 
155
194
  ```tsx
@@ -161,7 +200,7 @@ function UploadExample() {
161
200
  images={images}
162
201
  setImages={setImages}
163
202
  multiple
164
- gridCols={4}
203
+ theme="modern"
165
204
  uploadConfig={{
166
205
  provider: 'imgbb',
167
206
  config: { apiKey: process.env.IMGBB_API_KEY }
@@ -174,43 +213,73 @@ function UploadExample() {
174
213
  }
175
214
  ```
176
215
 
177
- ### Responsive Grid
178
-
179
- ```tsx
180
- // 2 columns on mobile, 4 on desktop
181
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
182
- <ImageUploader images={images} setImages={setImages} gridCols={1} />
183
- </div>
184
- ```
185
-
186
- ## Theme Support
187
-
188
- The component includes built-in light and dark themes:
216
+ ### Auto Upload
189
217
 
190
218
  ```tsx
191
- // Controlled theme
192
219
  <ImageUploader
193
220
  images={images}
194
221
  setImages={setImages}
195
- theme="dark"
196
- showThemeToggle={false}
222
+ theme="sunset"
223
+ autoUpload
224
+ uploadConfig={{
225
+ provider: 'cloudinary',
226
+ config: {
227
+ cloudName: 'your-cloud',
228
+ uploadPreset: 'your-preset'
229
+ }
230
+ }}
197
231
  />
232
+ ```
233
+
234
+ ### Hide Theme Selector & Image Count
198
235
 
199
- // Uncontrolled theme (with toggle)
236
+ ```tsx
200
237
  <ImageUploader
201
238
  images={images}
202
239
  setImages={setImages}
203
- showThemeToggle={true}
240
+ theme="fresh"
241
+ showThemeSelector={false}
242
+ showImageCount={false}
204
243
  />
205
244
  ```
206
245
 
246
+ ## Built-in Themes
247
+
248
+ The component comes with 5 beautiful themes:
249
+
250
+ ### Modern (Purple)
251
+ - Gradient: Purple to violet
252
+ - Primary: `#6366f1`
253
+ - Perfect for modern web apps
254
+
255
+ ### Fresh (Mint/Rose)
256
+ - Gradient: Mint to rose
257
+ - Primary: `#10b981`
258
+ - Fresh and clean look
259
+
260
+ ### Nature (Green)
261
+ - Gradient: Lime to emerald
262
+ - Primary: `#22c55e`
263
+ - Nature-inspired design
264
+
265
+ ### Ocean (Blue)
266
+ - Gradient: Blue to purple
267
+ - Primary: `#0ea5e9`
268
+ - Calm ocean vibes
269
+
270
+ ### Sunset (Orange)
271
+ - Gradient: Yellow to orange
272
+ - Primary: `#f59e0b`
273
+ - Warm sunset colors
274
+
207
275
  ## Animations
208
276
 
209
277
  The component includes smooth animations:
210
278
  - Scale effect on drag over
211
- - Fade-in/out for previews
279
+ - Fade-in for image previews
280
+ - Bounce-in for upload complete checkmark
212
281
  - Hover scale on image cards
213
- - Smooth progress bar transitions
282
+ - Progress overlay with backdrop blur
214
283
  - Button hover effects
215
284
 
216
285
  ## Accessibility
@@ -223,9 +292,11 @@ The component includes smooth animations:
223
292
  ## Responsive Design
224
293
 
225
294
  The grid layout adapts to screen sizes:
226
- - Default: `max-w-5xl mx-auto` container
227
- - Configurable grid columns (2-6)
228
- - Works on mobile, tablet, and desktop
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`
229
300
 
230
301
  ## Upload Functions
231
302
 
@@ -259,44 +330,13 @@ const results = await uploadImages(files, 'cloudinary', {
259
330
  2. Get cloud name and create upload preset
260
331
  3. Use `{ provider: 'cloudinary', config: { cloudName, uploadPreset } }`
261
332
 
262
- ## Customization
263
-
264
- ### Card Styling
265
-
266
- ```tsx
267
- <ImageUploader
268
- images={images}
269
- setImages={setImages}
270
- cardClassName="border-2 border-purple-500"
271
- />
272
- ```
273
-
274
- ### Container Size
275
-
276
- ```tsx
277
- <ImageUploader
278
- images={images}
279
- setImages={setImages}
280
- containerClassName="max-w-7xl mx-auto"
281
- />
282
- ```
283
-
284
- ### Grid Columns
285
-
286
- ```tsx
287
- // 2 columns
288
- <ImageUploader gridCols={2} />
289
-
290
- // 6 columns
291
- <ImageUploader gridCols={6} />
292
- ```
293
-
294
333
  ## TypeScript
295
334
 
296
335
  Full TypeScript support:
297
336
 
298
337
  ```tsx
299
338
  import type { ImageUploaderProps } from "ultra-image-uploader";
339
+ import type { Theme } from "ultra-image-uploader";
300
340
  ```
301
341
 
302
342
  ## Browser Support
@@ -313,12 +353,13 @@ import type { ImageUploaderProps } from "ultra-image-uploader";
313
353
  - Ensure `node_modules` exists
314
354
 
315
355
  ### Theme not applying
316
- - Wrap parent div with `dark` class for dark mode
317
- - Check Tailwind CSS dark mode config
356
+ - Check that theme name matches one of the built-in themes
357
+ - For custom themes, verify the structure matches the Theme type
318
358
 
319
- ### Grid not responsive
320
- - Adjust `gridCols` prop for different breakpoints
321
- - Use wrapper with responsive classes
359
+ ### Images not uploading
360
+ - Verify API credentials
361
+ - Check browser console for errors
362
+ - Ensure CORS is configured for your upload provider
322
363
 
323
364
  ## License
324
365
 
@@ -1,22 +1,91 @@
1
1
  import type { UploadProvider, ProviderConfig } from '../types';
2
+ export declare const themes: {
3
+ modern: {
4
+ name: string;
5
+ colors: {
6
+ primary: string;
7
+ primaryHover: string;
8
+ background: string;
9
+ border: string;
10
+ text: string;
11
+ textSecondary: string;
12
+ cardBg: string;
13
+ cardBorder: string;
14
+ shadow: string;
15
+ };
16
+ };
17
+ fresh: {
18
+ name: string;
19
+ colors: {
20
+ primary: string;
21
+ primaryHover: string;
22
+ background: string;
23
+ border: string;
24
+ text: string;
25
+ textSecondary: string;
26
+ cardBg: string;
27
+ cardBorder: string;
28
+ shadow: string;
29
+ };
30
+ };
31
+ nature: {
32
+ name: string;
33
+ colors: {
34
+ primary: string;
35
+ primaryHover: string;
36
+ background: string;
37
+ border: string;
38
+ text: string;
39
+ textSecondary: string;
40
+ cardBg: string;
41
+ cardBorder: string;
42
+ shadow: string;
43
+ };
44
+ };
45
+ ocean: {
46
+ name: string;
47
+ colors: {
48
+ primary: string;
49
+ primaryHover: string;
50
+ background: string;
51
+ border: string;
52
+ text: string;
53
+ textSecondary: string;
54
+ cardBg: string;
55
+ cardBorder: string;
56
+ shadow: string;
57
+ };
58
+ };
59
+ sunset: {
60
+ name: string;
61
+ colors: {
62
+ primary: string;
63
+ primaryHover: string;
64
+ background: string;
65
+ border: string;
66
+ text: string;
67
+ textSecondary: string;
68
+ cardBg: string;
69
+ cardBorder: string;
70
+ shadow: string;
71
+ };
72
+ };
73
+ };
2
74
  export interface ImageUploaderProps {
3
75
  images: File[];
4
76
  setImages: (images: File[]) => void;
77
+ mode?: 'add' | 'update';
78
+ defaultImages?: string[];
5
79
  multiple?: boolean;
6
80
  maxSize?: number;
7
81
  allowedTypes?: string[];
8
82
  maxImages?: number;
9
83
  className?: string;
10
84
  containerClassName?: string;
11
- uploadText?: string;
12
- dragText?: string;
13
- theme?: 'light' | 'dark';
14
- onThemeChange?: (theme: 'light' | 'dark') => void;
15
- showThemeToggle?: boolean;
85
+ theme?: keyof typeof themes;
86
+ customTheme?: typeof themes[keyof typeof themes];
87
+ showThemeSelector?: boolean;
16
88
  showImageCount?: boolean;
17
- enableReorder?: boolean;
18
- gridCols?: number;
19
- cardClassName?: string;
20
89
  onUploadComplete?: (urls: string[]) => void;
21
90
  onUploadError?: (error: Error) => void;
22
91
  autoUpload?: boolean;
@@ -25,5 +94,5 @@ export interface ImageUploaderProps {
25
94
  config: ProviderConfig;
26
95
  };
27
96
  }
28
- export declare function ImageUploader({ images, setImages, multiple, maxSize, allowedTypes, maxImages, className, containerClassName, uploadText, dragText, theme: externalTheme, onThemeChange, showThemeToggle, showImageCount, enableReorder, gridCols, cardClassName, onUploadComplete, onUploadError, autoUpload, uploadConfig, }: ImageUploaderProps): import("react/jsx-runtime").JSX.Element;
97
+ export declare function ImageUploader({ images, setImages, mode, defaultImages, multiple, maxSize, allowedTypes, maxImages, className, containerClassName, theme, customTheme, showThemeSelector, showImageCount, onUploadComplete, onUploadError, autoUpload, uploadConfig, }: ImageUploaderProps): import("react/jsx-runtime").JSX.Element;
29
98
  //# 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;AAI/D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,cAAc,CAAC;QACzB,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;CACH;AASD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,QAAe,EACf,OAA0B,EAC1B,YAAkF,EAClF,SAAc,EACd,SAAc,EACd,kBAAwC,EACxC,UAA6C,EAC7C,QAA6B,EAC7B,KAAK,EAAE,aAAa,EACpB,aAAa,EACb,eAAsB,EACtB,cAAqB,EACrB,aAAoB,EACpB,QAAY,EACZ,aAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,UAAkB,EAClB,YAAY,GACb,EAAE,kBAAkB,2CAwgBpB"}
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;IACjC,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,OAAO,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,cAAc,CAAC;QACzB,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;CACH;AASD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,IAAY,EACZ,aAAkB,EAClB,QAAe,EACf,OAA0B,EAC1B,YAAkF,EAClF,SAAc,EACd,SAAc,EACd,kBAA8C,EAC9C,KAAgB,EAChB,WAAW,EACX,iBAAwB,EACxB,cAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,UAAkB,EAClB,YAAY,GACb,EAAE,kBAAkB,2CA2fpB"}
@@ -1,24 +1,92 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
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, File, Moon, Sun, GripVertical } from 'lucide-react';
4
+ import { Upload, X, Image as ImageIcon, Loader2, Sparkles } from 'lucide-react';
5
5
  import { uploadImage } from '../providers';
6
6
  import { isImageFile, formatFileSize } from '../utils/validation';
7
- export function ImageUploader({ images, setImages, multiple = true, maxSize = 50 * 1024 * 1024, allowedTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp', 'image/gif'], maxImages = 20, className = '', containerClassName = 'max-w-5xl mx-auto', uploadText = 'Click or drag to upload images', dragText = 'Drop images here', theme: externalTheme, onThemeChange, showThemeToggle = true, showImageCount = true, enableReorder = true, gridCols = 4, cardClassName = '', onUploadComplete, onUploadError, autoUpload = false, uploadConfig, }) {
8
- const [internalTheme, setInternalTheme] = useState('light');
7
+ // Theme definitions
8
+ export const themes = {
9
+ modern: {
10
+ name: 'Modern',
11
+ colors: {
12
+ primary: '#6366f1',
13
+ primaryHover: '#4f46e5',
14
+ background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
15
+ border: '#e5e7eb',
16
+ text: '#1f2937',
17
+ textSecondary: '#6b7280',
18
+ cardBg: '#ffffff',
19
+ cardBorder: '#f3f4f6',
20
+ shadow: '0 10px 40px rgba(0,0,0,0.1)',
21
+ },
22
+ },
23
+ fresh: {
24
+ name: 'Fresh',
25
+ colors: {
26
+ primary: '#10b981',
27
+ primaryHover: '#059669',
28
+ background: 'linear-gradient(135deg, #a8edea 0%, #fed6e3 100%)',
29
+ border: '#d1fae5',
30
+ text: '#064e3b',
31
+ textSecondary: '#047857',
32
+ cardBg: '#ffffff',
33
+ cardBorder: '#ecfdf5',
34
+ shadow: '0 8px 30px rgba(16, 185, 129, 0.15).',
35
+ },
36
+ },
37
+ nature: {
38
+ name: 'Nature',
39
+ colors: {
40
+ primary: '#22c55e',
41
+ primaryHover: '#16a34a',
42
+ background: 'linear-gradient(135deg, #d4fc79 0%, #96e6a1 100%)',
43
+ border: '#bbf7d0',
44
+ text: '#14532d',
45
+ textSecondary: '#166534',
46
+ cardBg: '#f0fdf4',
47
+ cardBorder: '#dcfce7',
48
+ shadow: '0 12px 35px rgba(34, 197, 94, 0.15).',
49
+ },
50
+ },
51
+ ocean: {
52
+ name: 'Ocean',
53
+ colors: {
54
+ primary: '#0ea5e9',
55
+ primaryHover: '#0284c7',
56
+ background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
57
+ border: '#bae6fd',
58
+ text: '#0c4a6e',
59
+ textSecondary: '#075985',
60
+ cardBg: '#f0f9ff',
61
+ cardBorder: '#e0f2fe',
62
+ shadow: '0 10px 40px rgba(14, 165, 233, 0.2).',
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).',
77
+ },
78
+ },
79
+ };
80
+ 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'], maxImages = 20, className = '', containerClassName = 'max-w-5xl mx-auto mt-10', theme = 'nature', customTheme, showThemeSelector = true, showImageCount = true, onUploadComplete, onUploadError, autoUpload = false, uploadConfig, }) {
81
+ const [selectedTheme, setSelectedTheme] = useState(theme);
9
82
  const [isDragging, setIsDragging] = useState(false);
10
83
  const [fileStates, setFileStates] = useState(new Map());
11
84
  const [uploading, setUploading] = useState(false);
12
- const [draggedIndex, setDraggedIndex] = useState(null);
85
+ const [removedDefaults, setRemovedDefaults] = useState([]);
13
86
  const fileInputRef = useRef(null);
14
87
  const dragCounter = useRef(0);
15
- const theme = externalTheme || internalTheme;
16
- const isDark = theme === 'dark';
17
- const handleThemeToggle = () => {
18
- const newTheme = isDark ? 'light' : 'dark';
19
- setInternalTheme(newTheme);
20
- onThemeChange?.(newTheme);
21
- };
88
+ const currentTheme = customTheme || themes[selectedTheme];
89
+ const t = currentTheme.colors;
22
90
  // Generate previews
23
91
  useEffect(() => {
24
92
  const newStates = new Map();
@@ -150,77 +218,89 @@ export function ImageUploader({ images, setImages, multiple = true, maxSize = 50
150
218
  const removeFile = (index) => {
151
219
  setImages(images.filter((_, i) => i !== index));
152
220
  };
153
- const handleDragStart = (e, index) => {
154
- if (!enableReorder)
155
- return;
156
- setDraggedIndex(index);
157
- e.dataTransfer.effectAllowed = 'move';
158
- };
159
- const handleDragOverItem = (e, index) => {
160
- if (!enableReorder || draggedIndex === null || draggedIndex === index)
161
- return;
162
- e.preventDefault();
163
- e.dataTransfer.dropEffect = 'move';
164
- };
165
- const handleDropItem = (e, index) => {
166
- if (!enableReorder || draggedIndex === null || draggedIndex === index)
167
- return;
168
- e.preventDefault();
169
- const newImages = [...images];
170
- const draggedItem = newImages[draggedIndex];
171
- newImages.splice(draggedIndex, 1);
172
- newImages.splice(index, 0, draggedItem);
173
- setImages(newImages);
174
- setDraggedIndex(null);
175
- };
176
- const handleDragEnd = () => {
177
- setDraggedIndex(null);
221
+ const removeDefaultImage = (index) => {
222
+ setRemovedDefaults((prev) => [...prev, index]);
178
223
  };
179
224
  const getFileState = (file) => {
180
225
  const key = `${file.name}-${file.size}`;
181
226
  return fileStates.get(key) || { ...file, progress: 0, status: 'pending' };
182
227
  };
183
- const gridColsClass = {
184
- 2: 'grid-cols-2',
185
- 3: 'grid-cols-3',
186
- 4: 'grid-cols-4',
187
- 5: 'grid-cols-5',
188
- 6: 'grid-cols-6',
189
- }[gridCols] || 'grid-cols-4';
190
- return (_jsxs("div", { className: `image-uploader ${containerClassName} ${className}`, children: [_jsxs("div", { className: "flex items-center justify-between mb-6", children: [_jsx("h2", { className: `text-2xl font-bold ${isDark ? 'text-white' : 'text-gray-900'}`, children: "Upload Images" }), showImageCount && (_jsxs("span", { className: `text-sm ${isDark ? 'text-gray-400' : 'text-gray-600'}`, children: [images.length, " ", maxImages ? `/ ${maxImages}` : '', " images"] }))] }), _jsxs("div", { className: `relative rounded-2xl border-2 border-dashed transition-all duration-300 ${isDragging
191
- ? 'border-blue-500 bg-blue-50 scale-[1.02]'
192
- : isDark
193
- ? 'border-gray-600 bg-gray-800/50 hover:border-gray-500'
194
- : 'border-gray-300 bg-gray-50 hover:border-gray-400'}`, style: {
195
- boxShadow: isDark
196
- ? '0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2)'
197
- : '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
198
- }, onClick: () => fileInputRef.current?.click(), onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, tabIndex: 0, onKeyDown: (e) => {
199
- if (e.key === 'Enter' || e.key === ' ') {
200
- fileInputRef.current?.click();
201
- }
202
- }, onFocus: (e) => e.currentTarget.classList.add('ring-2', 'ring-blue-500'), onBlur: (e) => e.currentTarget.classList.remove('ring-2', 'ring-blue-500'), children: [_jsx("input", { ref: fileInputRef, type: "file", accept: allowedTypes.join(','), multiple: multiple, onChange: handleChange, className: "absolute inset-0 opacity-0 cursor-pointer", style: { zIndex: 10 } }), _jsxs("div", { className: "flex flex-col items-center justify-center p-12", children: [_jsxs("div", { className: `relative mb-4 transition-transform duration-300 ${isDragging ? 'scale-110' : 'scale-100'}`, children: [_jsx("div", { className: `w-20 h-20 rounded-full flex items-center justify-center ${isDark ? 'bg-gray-700' : 'bg-white'}`, style: {
203
- boxShadow: isDark
204
- ? '0 4px 6px -1px rgba(0, 0, 0, 0.3)'
205
- : '0 4px 6px -1px rgba(0, 0, 0, 0.1)',
206
- }, children: _jsx(ImageIcon, { size: 40, className: isDark ? 'text-gray-400' : 'text-gray-500' }) }), _jsx("div", { className: `absolute -bottom-2 -right-2 w-10 h-10 rounded-full flex items-center justify-center transition-all duration-300 ${isDragging ? 'scale-125' : 'scale-100'} ${isDark ? 'bg-blue-600' : 'bg-blue-500'}`, children: _jsx(Upload, { size: 20, className: "text-white" }) })] }), _jsx("p", { className: `text-lg font-semibold mb-2 transition-colors ${isDark ? 'text-white' : 'text-gray-900'}`, children: isDragging ? dragText : uploadText }), _jsxs("p", { className: `text-sm ${isDark ? 'text-gray-400' : 'text-gray-500'}`, children: ["Maximum file size ", formatFileSize(maxSize)] }), maxImages && (_jsxs("p", { className: `text-xs mt-2 ${isDark ? 'text-gray-500' : 'text-gray-400'}`, children: ["Up to ", maxImages, " images"] }))] })] }), showThemeToggle && !externalTheme && (_jsx("div", { className: "flex justify-end mt-4", children: _jsxs("button", { onClick: handleThemeToggle, className: `flex items-center gap-2 px-4 py-2 rounded-lg transition-all ${isDark
207
- ? 'bg-gray-800 hover:bg-gray-700 text-gray-200'
208
- : 'bg-gray-100 hover:bg-gray-200 text-gray-700'}`, children: [isDark ? _jsx(Sun, { size: 18 }) : _jsx(Moon, { size: 18 }), _jsxs("span", { className: "text-sm font-medium", children: [isDark ? 'Light' : 'Dark', " Mode"] })] }) })), images.length > 0 && (_jsx("div", { className: "mt-8", children: _jsx("div", { className: `grid gap-4 ${gridColsClass} ${isDark ? 'text-white' : 'text-gray-900'}`, children: images.map((file, index) => {
209
- const state = getFileState(file);
210
- const isUploading = state.status === 'uploading';
211
- const isDone = state.status === 'done';
212
- return (_jsx("div", { draggable: enableReorder, onDragStart: (e) => handleDragStart(e, index), onDragOver: (e) => handleDragOverItem(e, index), onDrop: (e) => handleDropItem(e, index), onDragEnd: handleDragEnd, className: `group relative ${cardClassName} ${draggedIndex === index ? 'opacity-50' : ''}`, children: _jsxs("div", { className: `relative overflow-hidden rounded-xl transition-all duration-300 ${isDark
213
- ? 'bg-gray-800 hover:bg-gray-750'
214
- : 'bg-white hover:bg-gray-50'}`, style: {
215
- boxShadow: isDark
216
- ? '0 4px 6px -1px rgba(0, 0, 0, 0.3)'
217
- : '0 4px 6px -1px rgba(0, 0, 0, 0.1)',
218
- }, children: [enableReorder && (_jsx("div", { className: `absolute top-2 left-2 p-1.5 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity z-20 ${isDark ? 'bg-gray-700' : 'bg-white'}`, style: { boxShadow: '0 2px 4px rgba(0,0,0,0.1)' }, children: _jsx(GripVertical, { size: 16, className: isDark ? 'text-gray-400' : 'text-gray-500' }) })), _jsx("button", { onClick: (e) => {
219
- e.stopPropagation();
220
- removeFile(index);
221
- }, className: "absolute top-2 right-2 p-1.5 rounded-full opacity-0 group-hover:opacity-100 transition-all z-20 hover:scale-110 bg-red-500 hover:bg-red-600 text-white", style: { boxShadow: '0 2px 4px rgba(0,0,0,0.2)' }, children: _jsx(X, { size: 16 }) }), _jsxs("div", { className: "relative aspect-square", children: [state.preview ? (_jsx("img", { src: state.preview, alt: file.name, className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105" })) : (_jsx("div", { className: `w-full h-full flex items-center justify-center ${isDark ? 'bg-gray-700' : 'bg-gray-100'}`, children: _jsx(File, { size: 48, className: isDark ? 'text-gray-500' : 'text-gray-400' }) })), (isUploading || isDone) && (_jsx("div", { className: "absolute inset-0 bg-black/60 flex items-center justify-center", children: _jsx("div", { className: "text-center", children: isUploading ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "w-16 h-16 border-4 border-white border-t-transparent rounded-full animate-spin mx-auto mb-2" }), _jsxs("p", { className: "text-white font-semibold", children: [state.progress, "%"] })] })) : (_jsx("div", { className: "w-16 h-16 bg-green-500 rounded-full flex items-center justify-center", children: _jsx("svg", { className: "w-8 h-8 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" }) }) })) }) }))] }), _jsxs("div", { className: "p-3", children: [_jsx("p", { className: `text-sm font-medium truncate mb-1 ${isDark ? 'text-white' : 'text-gray-900'}`, children: file.name }), _jsx("p", { className: `text-xs ${isDark ? 'text-gray-400' : 'text-gray-500'}`, children: formatFileSize(file.size) }), isUploading && (_jsx("div", { className: "mt-2", children: _jsx("div", { className: "w-full bg-gray-200 rounded-full h-1", children: _jsx("div", { className: "bg-blue-500 h-1 rounded-full transition-all duration-300", style: { width: `${state.progress}%` } }) }) }))] })] }) }, `${file.name}-${file.size}`));
222
- }) }) })), images.length > 0 && !autoUpload && (_jsxs("div", { className: "mt-6 flex items-center justify-end gap-3", children: [_jsx("button", { onClick: () => setImages([]), className: `px-6 py-2.5 text-sm font-medium rounded-lg transition-all ${isDark
223
- ? 'bg-gray-800 hover:bg-gray-700 text-gray-200 border border-gray-700'
224
- : 'bg-white hover:bg-gray-50 text-gray-700 border border-gray-300'}`, children: "Clear All" }), _jsx("button", { onClick: handleAutoUpload, disabled: uploading, className: "px-6 py-2.5 text-sm font-medium text-white bg-blue-500 hover:bg-blue-600 rounded-lg disabled:opacity-50 disabled:cursor-not-allowed transition-all hover:shadow-lg hover:scale-105 flex items-center gap-2", children: uploading ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin" }), "Uploading..."] })) : (_jsxs(_Fragment, { children: [_jsx(Upload, { size: 16 }), "Upload ", images.length, " ", images.length === 1 ? 'Image' : 'Images'] })) })] }))] }));
228
+ return (_jsxs("div", { className: `image-uploader ${containerClassName} ${className}`, children: [_jsxs("div", { className: "flex items-center justify-between mb-8", children: [_jsxs("div", { children: [_jsxs("h2", { className: "text-3xl font-bold", style: { color: t.text, fontFamily: 'system-ui, sans-serif' }, children: [mode === 'update' ? 'Update' : 'Upload', " Images"] }), _jsx("p", { className: "mt-1", style: { color: t.textSecondary }, children: "Beautiful image upload with real-time previews" })] }), showImageCount && (_jsxs("div", { className: "flex items-center gap-2 px-4 py-2 rounded-full", style: { backgroundColor: t.cardBg, border: `1px solid ${t.border}` }, children: [_jsx(Sparkles, { size: 18, style: { color: t.primary } }), _jsxs("span", { className: "font-semibold", style: { color: t.text }, children: [images.length, " ", maxImages ? `/ ${maxImages}` : ''] })] }))] }), showThemeSelector && (_jsx("div", { className: "mb-6 flex flex-wrap gap-2", children: Object.entries(themes).map(([key, themeData]) => (_jsx("button", { onClick: () => setSelectedTheme(key), className: `px-4 py-2 rounded-lg font-medium transition-all duration-300 transform hover:scale-105 ${selectedTheme === key ? 'ring-2 ring-offset-2' : ''}`, style: {
229
+ backgroundColor: selectedTheme === key ? themeData.colors.primary : themeData.colors.cardBg,
230
+ color: selectedTheme === key ? 'white' : themeData.colors.text,
231
+ borderColor: themeData.colors.border,
232
+ boxShadow: selectedTheme === key ? themeData.colors.shadow : 'none',
233
+ }, children: themeData.name }, key))) })), _jsxs("div", { className: "relative rounded-2xl border-2 transition-all duration-500 cursor-pointer", style: {
234
+ background: t.background,
235
+ borderColor: isDragging ? t.primary : t.border,
236
+ boxShadow: isDragging ? `${t.shadow}, 0 0 0 4px ${t.primary}40` : t.shadow,
237
+ transform: isDragging ? 'scale(1.02)' : 'scale(1)',
238
+ }, onClick: () => fileInputRef.current?.click(), 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: { zIndex: 10 } }), _jsxs("div", { className: "flex flex-col items-center justify-center p-16", children: [_jsx("div", { className: `relative mb-6 transition-transform duration-500 ${isDragging ? 'scale-125 rotate-6' : 'scale-100'}`, children: _jsxs("div", { className: `rounded-full flex items-center justify-center relative`, style: {
239
+ width: '120px',
240
+ height: '120px',
241
+ background: t.cardBg,
242
+ border: `3px solid ${t.border}`,
243
+ boxShadow: t.shadow,
244
+ }, children: [_jsx(ImageIcon, { size: 48, style: { color: t.primary } }), _jsx("div", { className: "absolute -bottom-2 -right-2 w-12 h-12 rounded-full flex items-center justify-center transition-all duration-300", style: {
245
+ background: t.primary,
246
+ boxShadow: `0 4px 12px ${t.primary}40`,
247
+ }, children: _jsx(Upload, { size: 24, className: "text-white" }) })] }) }), _jsx("h3", { className: "text-xl font-bold mb-2 transition-all duration-300", style: { color: isDragging ? t.primary : t.text }, children: isDragging ? 'Drop images here' : 'Click or drag to upload' }), _jsxs("p", { className: "text-sm mb-1", style: { color: t.textSecondary }, children: ["Maximum file size ", formatFileSize(maxSize)] }), maxImages && (_jsxs("p", { className: "text-xs", style: { color: t.textSecondary }, children: ["Up to ", maxImages, " images"] }))] })] }), (images.length > 0 || defaultImages.length > 0) && (_jsx("div", { className: "mt-10", children: _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6", children: [mode === 'update' &&
248
+ defaultImages.map((url, index) => !removedDefaults.includes(index) && (_jsx("div", { className: "relative group", style: { animation: 'fadeIn 0.3s ease-out' }, children: _jsx("div", { className: `rounded-xl overflow-hidden transition-all duration-300`, style: {
249
+ border: `2px solid ${t.cardBorder}`,
250
+ boxShadow: t.shadow,
251
+ backgroundColor: t.cardBg,
252
+ }, children: _jsxs("div", { className: "relative aspect-square", children: [_jsx("img", { src: url, alt: `Preview ${index + 1}`, className: "w-full h-full object-cover transition-transform duration-500 group-hover:scale-110" }), _jsx("button", { onClick: () => removeDefaultImage(index), className: "absolute top-3 right-3 w-10 h-10 flex items-center justify-center rounded-full bg-red-500 hover:bg-red-600 text-white opacity-0 group-hover:opacity-100 transition-all duration-300 transform hover:scale-110 shadow-lg", style: {
253
+ boxShadow: '0 4px 12px rgba(239, 68, 68, 0.4)',
254
+ }, children: _jsx(X, { size: 18 }) })] }) }) }, `default-${index}`))), images.map((file, index) => {
255
+ const state = getFileState(file);
256
+ const isUploading = state.status === 'uploading';
257
+ const isDone = state.status === 'done';
258
+ return (_jsx("div", { className: "relative group", style: { animation: 'fadeIn 0.3s ease-out', animationDelay: `${index * 50}ms` }, children: _jsxs("div", { className: `rounded-xl overflow-hidden transition-all duration-300 transform hover:-translate-y-1 hover:shadow-2xl`, style: {
259
+ border: `2px solid ${t.cardBorder}`,
260
+ boxShadow: t.shadow,
261
+ backgroundColor: t.cardBg,
262
+ }, children: [_jsxs("div", { className: "relative aspect-square", children: [state.preview ? (_jsx("img", { src: state.preview, alt: file.name, className: "w-full h-full object-cover transition-transform duration-500 group-hover:scale-110" })) : (_jsx("div", { className: "w-full h-full flex items-center justify-center", style: { backgroundColor: t.border }, children: _jsx(ImageIcon, { size: 48, style: { color: t.primary } }) })), _jsx("button", { onClick: () => removeFile(index), className: "absolute top-3 right-3 w-10 h-10 flex items-center justify-center rounded-full bg-red-500 hover:bg-red-600 text-white opacity-0 group-hover:opacity-100 transition-all duration-300 transform hover:scale-110 shadow-lg", style: {
263
+ boxShadow: '0 4px 12px rgba(239, 68, 68, 0.4)',
264
+ }, children: _jsx(X, { size: 18 }) }), isUploading && (_jsx("div", { className: "absolute inset-0 bg-black/70 backdrop-blur-sm flex items-center justify-center transition-opacity duration-300", children: _jsxs("div", { className: "text-center", children: [_jsx(Loader2, { size: 40, className: "animate-spin text-white mx-auto mb-3" }), _jsxs("p", { className: "text-white font-bold", children: [state.progress, "%"] })] }) })), isDone && (_jsx("div", { className: "absolute inset-0 bg-black/40 backdrop-blur-sm flex items-center justify-center", children: _jsx("div", { className: "w-20 h-20 bg-green-500 rounded-full flex items-center justify-center transform scale-0 animate-bounce-in", style: {
265
+ boxShadow: '0 8px 24px rgba(34, 197, 94, 0.5)',
266
+ }, children: _jsx("svg", { className: "w-10 h-10 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" }) }) }) }))] }), _jsxs("div", { className: "p-4", children: [_jsx("p", { className: "font-semibold truncate mb-1", style: { color: t.text }, children: file.name }), _jsx("p", { className: "text-xs", style: { color: t.textSecondary }, children: formatFileSize(file.size) })] })] }) }, `${file.name}-${file.size}`));
267
+ })] }) })), images.length > 0 && !autoUpload && (_jsxs("div", { className: "mt-10 flex items-center justify-end gap-4", children: [_jsx("button", { onClick: () => {
268
+ setImages([]);
269
+ setRemovedDefaults([]);
270
+ }, className: "px-6 py-3 rounded-lg font-medium transition-all duration-300 transform hover:scale-105", style: {
271
+ backgroundColor: t.cardBg,
272
+ color: t.text,
273
+ border: `2px solid ${t.border}`,
274
+ }, children: "Clear All" }), _jsx("button", { onClick: handleAutoUpload, disabled: uploading, className: "px-8 py-3 rounded-lg font-medium text-white transition-all duration-300 transform hover:scale-105 disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2", style: {
275
+ background: t.primary,
276
+ boxShadow: `0 8px 20px ${t.primary}40`,
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: `
278
+ @keyframes fadeIn {
279
+ from {
280
+ opacity: 0;
281
+ transform: translateY(10px);
282
+ }
283
+ to {
284
+ opacity: 1;
285
+ transform: translateY(0);
286
+ }
287
+ }
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
+ ` })] }));
225
305
  }
226
306
  //# sourceMappingURL=ImageUploader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAoClE,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAC1B,YAAY,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,EAClF,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,EAAE,EACd,kBAAkB,GAAG,mBAAmB,EACxC,UAAU,GAAG,gCAAgC,EAC7C,QAAQ,GAAG,kBAAkB,EAC7B,KAAK,EAAE,aAAa,EACpB,aAAa,EACb,eAAe,GAAG,IAAI,EACtB,cAAc,GAAG,IAAI,EACrB,aAAa,GAAG,IAAI,EACpB,QAAQ,GAAG,CAAC,EACZ,aAAa,GAAG,EAAE,EAClB,gBAAgB,EAChB,aAAa,EACb,UAAU,GAAG,KAAK,EAClB,YAAY,GACO;IACnB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAmB,OAAO,CAAC,CAAC;IAC9E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgC,IAAI,GAAG,EAAE,CAAC,CAAC;IACvF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,aAAa,IAAI,aAAa,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC;IAEhC,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3C,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,oBAAoB;IACpB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;QACtD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAErC,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACtB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1E,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClE,gBAAgB,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACxB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC7D,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE;oBACjF,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;wBAChB,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE;4BACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;4BAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BAC9B,IAAI,OAAO,EAAE,CAAC;gCACZ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;4BACxD,CAAC;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC,CAAC;gBAEH,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC9B,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC/D,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBAEH,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YACtE,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAe,EAAsC,EAAE;QACtD,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,OAAO,GAAW,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC3D,OAAO;YACT,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAClD,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAe,EAAE,EAAE;QAClB,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CACxD,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YAC3B,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,CAAkB,EAAE,EAAE;QAC7C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM;YAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,CAAkB,EAAE,EAAE;QAC7C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC;YAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAkB,EAAE,EAAE;QAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,CAAkB,EAAE,EAAE;QACxC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC;QAExB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACjC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;QACnC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,CAAkB,EAAE,KAAa,EAAE,EAAE;QAC5D,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,CAAkB,EAAE,KAAa,EAAE,EAAE;QAC/D,IAAI,CAAC,aAAa,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK;YAAE,OAAO;QAC9E,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAkB,EAAE,KAAa,EAAE,EAAE;QAC3D,IAAI,CAAC,aAAa,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK;YAAE,OAAO;QAC9E,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAClC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QAExC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAU,EAAoB,EAAE;QACpD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC5E,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,aAAa;KACjB,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC;IAE7B,OAAO,CACL,eAAK,SAAS,EAAE,kBAAkB,kBAAkB,IAAI,SAAS,EAAE,aAEjE,eAAK,SAAS,EAAC,wCAAwC,aACrD,aAAI,SAAS,EAAE,sBAAsB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,EAAE,8BAEzE,EACJ,cAAc,IAAI,CACjB,gBAAM,SAAS,EAAE,WAAW,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,aACrE,MAAM,CAAC,MAAM,OAAG,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,eAC7C,CACR,IACG,EAGN,eACE,SAAS,EAAE,2EACT,UAAU;oBACR,CAAC,CAAC,yCAAyC;oBAC3C,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,sDAAsD;wBACxD,CAAC,CAAC,kDACN,EAAE,EACF,KAAK,EAAE;oBACL,SAAS,EAAE,MAAM;wBACf,CAAC,CAAC,sEAAsE;wBACxE,CAAC,CAAC,uEAAuE;iBAC5E,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,EAC5C,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;wBACvC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;oBAChC,CAAC;gBACH,CAAC,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,EACxE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,aAE1E,gBACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAC,2CAA2C,EACrD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GACrB,EAEF,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eACE,SAAS,EAAE,mDACT,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAC7B,EAAE,aAEF,cACE,SAAS,EAAE,2DACT,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAC3B,EAAE,EACF,KAAK,EAAE;4CACL,SAAS,EAAE,MAAM;gDACf,CAAC,CAAC,mCAAmC;gDACrC,CAAC,CAAC,mCAAmC;yCACxC,YAED,KAAC,SAAS,IACR,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,GACrD,GACE,EACN,cACE,SAAS,EAAE,mHACT,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,YAE5C,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,GAAG,GACvC,IACF,EAEN,YACE,SAAS,EAAE,gDACT,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAC1B,EAAE,YAED,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GACjC,EAEJ,aACE,SAAS,EAAE,WAAW,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,mCAE/C,cAAc,CAAC,OAAO,CAAC,IACxC,EAEH,SAAS,IAAI,CACZ,aAAG,SAAS,EAAE,gBAAgB,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,uBACjE,SAAS,eACd,CACL,IACG,IACF,EAGL,eAAe,IAAI,CAAC,aAAa,IAAI,CACpC,cAAK,SAAS,EAAC,uBAAuB,YACpC,kBACE,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,+DACT,MAAM;wBACJ,CAAC,CAAC,6CAA6C;wBAC/C,CAAC,CAAC,6CACN,EAAE,aAED,MAAM,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,EAChD,gBAAM,SAAS,EAAC,qBAAqB,aAClC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,aACrB,IACA,GACL,CACP,EAGA,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,cAAK,SAAS,EAAC,MAAM,YACnB,cACE,SAAS,EAAE,cAAc,aAAa,IACpC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAC1B,EAAE,YAED,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;wBACjC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;wBACjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;wBAEvC,OAAO,CACL,cAEE,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,EAC7C,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,EAC/C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,EACvC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,kBAAkB,aAAa,IACxC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAC1C,EAAE,YAEF,eACE,SAAS,EAAE,mEACT,MAAM;oCACJ,CAAC,CAAC,+BAA+B;oCACjC,CAAC,CAAC,2BACN,EAAE,EACF,KAAK,EAAE;oCACL,SAAS,EAAE,MAAM;wCACf,CAAC,CAAC,mCAAmC;wCACrC,CAAC,CAAC,mCAAmC;iCACxC,aAGA,aAAa,IAAI,CAChB,cACE,SAAS,EAAE,oGACT,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAC3B,EAAE,EACF,KAAK,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,YAEjD,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,GAAI,GAC7E,CACP,EAGD,iBACE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4CACb,CAAC,CAAC,eAAe,EAAE,CAAC;4CACpB,UAAU,CAAC,KAAK,CAAC,CAAC;wCACpB,CAAC,EACD,SAAS,EAAC,wJAAwJ,EAClK,KAAK,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,YAEjD,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,EAGT,eAAK,SAAS,EAAC,wBAAwB,aACpC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CACf,cACE,GAAG,EAAE,KAAK,CAAC,OAAO,EAClB,GAAG,EAAE,IAAI,CAAC,IAAI,EACd,SAAS,EAAC,oFAAoF,GAC9F,CACH,CAAC,CAAC,CAAC,CACF,cACE,SAAS,EAAE,kDACT,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAC3B,EAAE,YAEF,KAAC,IAAI,IACH,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,GACrD,GACE,CACP,EAGA,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAC1B,cAAK,SAAS,EAAC,+DAA+D,YAC5E,cAAK,SAAS,EAAC,aAAa,YACzB,WAAW,CAAC,CAAC,CAAC,CACb,8BACE,cAAK,SAAS,EAAC,6FAA6F,GAAG,EAC/G,aAAG,SAAS,EAAC,0BAA0B,aAAE,KAAK,CAAC,QAAQ,SAAM,IAC5D,CACJ,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,sEAAsE,YACnF,cACE,SAAS,EAAC,oBAAoB,EAC9B,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,YAEnB,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,gBAAgB,GAClB,GACE,GACF,CACP,GACG,GACF,CACP,IACG,EAGN,eAAK,SAAS,EAAC,KAAK,aAClB,YACE,SAAS,EAAE,qCACT,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAC1B,EAAE,YAED,IAAI,CAAC,IAAI,GACR,EACJ,YACE,SAAS,EAAE,WAAW,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,YAEjE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GACxB,EAGH,WAAW,IAAI,CACd,cAAK,SAAS,EAAC,MAAM,YACnB,cAAK,SAAS,EAAC,qCAAqC,YAClD,cACE,SAAS,EAAC,0DAA0D,EACpE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE,GACtC,GACE,GACF,CACP,IACG,IACF,IA7HD,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CA8H5B,CACP,CAAC;oBACJ,CAAC,CAAC,GACE,GACF,CACP,EAGA,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CACnC,eAAK,SAAS,EAAC,0CAA0C,aACvD,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAC5B,SAAS,EAAE,6DACT,MAAM;4BACJ,CAAC,CAAC,oEAAoE;4BACtE,CAAC,CAAC,gEACN,EAAE,0BAGK,EACT,iBACE,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAC,4MAA4M,YAErN,SAAS,CAAC,CAAC,CAAC,CACX,8BACE,cAAK,SAAS,EAAC,8EAA8E,GAAG,oBAE/F,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,aACZ,MAAM,CAAC,MAAM,OAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAC/D,CACJ,GACM,IACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
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": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "A modern, beautiful React image upload component with ImgBB & Cloudinary support",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",