@jjlmoya/utils-audiovisual 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  import type { ExifCleanerUI } from './index';
3
- import './style.css';
4
3
 
5
4
  interface Props {
6
5
  ui: ExifCleanerUI;
@@ -160,3 +159,295 @@ const { ui } = Astro.props;
160
159
  init();
161
160
  document.addEventListener('astro:page-load', init);
162
161
  </script>
162
+
163
+ <style>
164
+ .ec-root {
165
+ --ec-bg: #fff;
166
+ --ec-bg-elevated: #f8fafc;
167
+ --ec-border: #e2e8f0;
168
+ --ec-text: #0f172a;
169
+ --ec-text-muted: #64748b;
170
+ --ec-accent: #6366f1;
171
+ --ec-accent-alpha: rgba(99, 102, 241, 0.08);
172
+ --ec-accent-alpha-hover: rgba(99, 102, 241, 0.02);
173
+ --ec-shadow: rgba(0, 0, 0, 0.15);
174
+
175
+ padding: 2.5rem 1.5rem;
176
+ max-width: 1000px;
177
+ margin: 0 auto;
178
+ }
179
+
180
+ :global(.theme-dark) .ec-root {
181
+ --ec-bg: #18181b;
182
+ --ec-bg-elevated: #27272a;
183
+ --ec-border: #3f3f46;
184
+ --ec-text: #f4f4f5;
185
+ --ec-text-muted: #71717a;
186
+ --ec-accent: #818cf8;
187
+ --ec-accent-alpha: rgba(129, 140, 248, 0.12);
188
+ --ec-accent-alpha-hover: rgba(129, 140, 248, 0.02);
189
+ --ec-shadow: rgba(0, 0, 0, 0.3);
190
+ }
191
+
192
+ .ec-card {
193
+ background: var(--ec-bg);
194
+ border: 1px solid var(--ec-border);
195
+ border-radius: 3rem;
196
+ padding: 1.5rem;
197
+ box-shadow: 0 45px 120px -30px var(--ec-shadow);
198
+ position: relative;
199
+ overflow: hidden;
200
+ }
201
+
202
+ .ec-drop {
203
+ padding: 4rem 2rem;
204
+ border: 3px dashed var(--ec-border);
205
+ border-radius: 2.5rem;
206
+ display: flex;
207
+ flex-direction: column;
208
+ align-items: center;
209
+ text-align: center;
210
+ cursor: pointer;
211
+ gap: 1.5rem;
212
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
213
+ }
214
+
215
+ .ec-drop:hover,
216
+ .ec-drop-active {
217
+ border-color: var(--ec-accent);
218
+ background: var(--ec-accent-alpha-hover);
219
+ }
220
+
221
+ .ec-drop-icon {
222
+ width: 6rem;
223
+ height: 6rem;
224
+ background: var(--ec-accent-alpha);
225
+ border-radius: 2rem;
226
+ display: flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ color: var(--ec-accent);
230
+ }
231
+
232
+ .ec-drop-icon svg {
233
+ width: 3rem;
234
+ height: 3rem;
235
+ }
236
+
237
+ .ec-title {
238
+ font-size: 2.5rem;
239
+ font-weight: 950;
240
+ color: var(--ec-text);
241
+ margin: 0;
242
+ }
243
+
244
+ .ec-subtitle {
245
+ font-size: 1.15rem;
246
+ color: var(--ec-text-muted);
247
+ max-width: 500px;
248
+ margin: 0;
249
+ font-weight: 700;
250
+ }
251
+
252
+ .ec-badges {
253
+ display: flex;
254
+ gap: 1rem;
255
+ flex-wrap: wrap;
256
+ justify-content: center;
257
+ }
258
+
259
+ .ec-badge {
260
+ padding: 0.6rem 1.25rem;
261
+ background: var(--ec-bg-elevated);
262
+ border-radius: 2rem;
263
+ font-size: 0.8rem;
264
+ font-weight: 800;
265
+ color: var(--ec-text-muted);
266
+ display: flex;
267
+ align-items: center;
268
+ gap: 0.5rem;
269
+ }
270
+
271
+ .ec-badge svg {
272
+ width: 1rem;
273
+ height: 1rem;
274
+ flex-shrink: 0;
275
+ }
276
+
277
+ .ec-processing {
278
+ padding: 5rem;
279
+ display: flex;
280
+ flex-direction: column;
281
+ align-items: center;
282
+ justify-content: center;
283
+ gap: 1.5rem;
284
+ }
285
+
286
+ .ec-spinner {
287
+ width: 4rem;
288
+ height: 4rem;
289
+ border: 4px solid var(--ec-accent-alpha);
290
+ border-top-color: var(--ec-accent);
291
+ border-radius: 50%;
292
+ animation: ec-spin 0.8s linear infinite;
293
+ }
294
+
295
+ .ec-processing-text {
296
+ font-weight: 800;
297
+ color: var(--ec-text);
298
+ margin: 0;
299
+ }
300
+
301
+ .ec-result {
302
+ padding: 2.5rem;
303
+ display: flex;
304
+ flex-direction: column;
305
+ animation: ec-slide-up 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
306
+ }
307
+
308
+ .ec-result-layout {
309
+ display: grid;
310
+ grid-template-columns: 1fr 1fr;
311
+ gap: 3rem;
312
+ }
313
+
314
+ @media (max-width: 800px) {
315
+ .ec-result-layout {
316
+ grid-template-columns: 1fr;
317
+ }
318
+ }
319
+
320
+ .ec-preview-col {
321
+ display: flex;
322
+ flex-direction: column;
323
+ gap: 1.5rem;
324
+ }
325
+
326
+ .ec-preview-img {
327
+ width: 100%;
328
+ border-radius: 1.5rem;
329
+ box-shadow: 0 20px 50px var(--ec-shadow);
330
+ display: block;
331
+ }
332
+
333
+ .ec-metadata {
334
+ background: var(--ec-bg-elevated);
335
+ border: 1px solid var(--ec-border);
336
+ border-radius: 1.25rem;
337
+ padding: 1.5rem;
338
+ min-height: 150px;
339
+ display: flex;
340
+ flex-direction: column;
341
+ justify-content: center;
342
+ }
343
+
344
+ .ec-no-metadata {
345
+ display: flex;
346
+ align-items: center;
347
+ justify-content: center;
348
+ height: 100%;
349
+ color: var(--ec-text-muted);
350
+ text-align: center;
351
+ }
352
+
353
+ .ec-metadata-title {
354
+ color: var(--ec-accent);
355
+ font-weight: 700;
356
+ margin-bottom: 1rem;
357
+ font-size: 0.9rem;
358
+ }
359
+
360
+ .ec-metadata-list {
361
+ list-style: none;
362
+ padding: 0;
363
+ margin: 0;
364
+ display: flex;
365
+ flex-direction: column;
366
+ gap: 0.75rem;
367
+ }
368
+
369
+ .ec-metadata-list li {
370
+ display: flex;
371
+ justify-content: space-between;
372
+ gap: 1rem;
373
+ font-size: 0.85rem;
374
+ font-weight: 600;
375
+ color: var(--ec-text);
376
+ }
377
+
378
+ .ec-metadata-list li span:first-child {
379
+ font-weight: 700;
380
+ }
381
+
382
+ .ec-metadata-list li span:last-child {
383
+ color: var(--ec-text-muted);
384
+ }
385
+
386
+ .ec-actions-col {
387
+ display: flex;
388
+ flex-direction: column;
389
+ gap: 1.5rem;
390
+ }
391
+
392
+ .ec-btn {
393
+ padding: 1.25rem;
394
+ border-radius: 1.5rem;
395
+ font-weight: 950;
396
+ font-size: 1.1rem;
397
+ border: none;
398
+ cursor: pointer;
399
+ display: flex;
400
+ align-items: center;
401
+ justify-content: center;
402
+ gap: 0.75rem;
403
+ transition: all 0.2s;
404
+ }
405
+
406
+ .ec-btn svg {
407
+ width: 1.25rem;
408
+ height: 1.25rem;
409
+ }
410
+
411
+ .ec-btn-primary {
412
+ background: var(--ec-accent);
413
+ color: #fff;
414
+ box-shadow: 0 15px 35px -10px var(--ec-accent);
415
+ }
416
+
417
+ .ec-btn-primary:hover {
418
+ transform: translateY(-2px);
419
+ box-shadow: 0 20px 45px -10px var(--ec-accent);
420
+ }
421
+
422
+ .ec-btn-secondary {
423
+ background: var(--ec-bg-elevated);
424
+ border: 1px solid var(--ec-border);
425
+ color: var(--ec-text);
426
+ }
427
+
428
+ .ec-btn-secondary:hover {
429
+ border-color: var(--ec-accent);
430
+ color: var(--ec-accent);
431
+ }
432
+
433
+ .ec-hidden {
434
+ display: none;
435
+ }
436
+
437
+ @keyframes ec-spin {
438
+ to {
439
+ transform: rotate(360deg);
440
+ }
441
+ }
442
+
443
+ @keyframes ec-slide-up {
444
+ from {
445
+ opacity: 0;
446
+ transform: translateY(30px);
447
+ }
448
+ to {
449
+ opacity: 1;
450
+ transform: translateY(0);
451
+ }
452
+ }
453
+ </style>