@jjlmoya/utils-audiovisual 1.15.0 → 1.16.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.
Files changed (22) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/tool/chromaticLens/chromatic-lens-color-palette-extraction-online.css +308 -0
  4. package/src/tool/chromaticLens/component.astro +0 -309
  5. package/src/tool/collageMaker/component.astro +0 -387
  6. package/src/tool/collageMaker/free-online-photo-collage-maker-professional-compositions.css +386 -0
  7. package/src/tool/exifCleaner/component.astro +0 -290
  8. package/src/tool/exifCleaner/exif-metadata-cleaner-remove-gps-photo-privacy.css +289 -0
  9. package/src/tool/imageCompressor/component.astro +0 -498
  10. package/src/tool/imageCompressor/online-image-compressor-reduce-file-size-no-quality-loss.css +496 -0
  11. package/src/tool/printQualityCalculator/component.astro +0 -485
  12. package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +483 -0
  13. package/src/tool/privacyBlur/component.astro +0 -334
  14. package/src/tool/privacyBlur/online-privacy-editor-pixelate-blur-faces-photos.css +332 -0
  15. package/src/tool/subtitleSync/component.astro +0 -327
  16. package/src/tool/subtitleSync/synchronize-srt-subtitles-online-adjust-timing-free.css +325 -0
  17. package/src/tool/timelapseCalculator/component.astro +0 -285
  18. package/src/tool/timelapseCalculator/timelapse-hyperlapse-calculator-perfect-intervals.css +283 -0
  19. package/src/tool/tvDistance/component.astro +0 -437
  20. package/src/tool/tvDistance/tv-viewing-distance-calculator-thx-4k-optimal-screen.css +435 -0
  21. package/src/tool/videoFrameExtractor/component.astro +0 -428
  22. package/src/tool/videoFrameExtractor/online-video-frame-extractor-capture-hd-stills.css +426 -0
@@ -300,391 +300,4 @@ const dropSub = (ui.dropSub ?? '').replace('{link}', `<span class="cm-drop-link"
300
300
  });
301
301
  </script>
302
302
 
303
- <style>
304
- :global(.cm-root) {
305
- --cm-bg: #fff;
306
- --cm-bg-muted: #f8fafc;
307
- --cm-border: #e2e8f0;
308
- --cm-text: #0f172a;
309
- --cm-text-muted: #64748b;
310
- --cm-primary: #6366f1;
311
- --cm-primary-light: #eef2ff;
312
- --cm-shadow: rgba(0,0,0,0.07);
313
- --cm-radius: 1rem;
314
303
 
315
- max-width: 1100px;
316
- margin: 0 auto;
317
- padding: 1rem;
318
- }
319
-
320
- :global(.theme-dark .cm-root) {
321
- --cm-bg: #1e293b;
322
- --cm-bg-muted: #0f172a;
323
- --cm-border: #334155;
324
- --cm-text: #f1f5f9;
325
- --cm-text-muted: #94a3b8;
326
- --cm-primary: #818cf8;
327
- --cm-primary-light: #1e1b4b;
328
- --cm-shadow: rgba(0,0,0,0.4);
329
- }
330
-
331
- :global(.cm-card) {
332
- background: var(--cm-bg);
333
- border: 1px solid var(--cm-border);
334
- border-radius: var(--cm-radius);
335
- box-shadow: 0 4px 24px var(--cm-shadow);
336
- overflow: hidden;
337
- }
338
-
339
- :global(.cm-top-row) {
340
- display: grid;
341
- grid-template-columns: 300px 1fr;
342
- gap: 0;
343
- }
344
-
345
- @media (max-width: 700px) {
346
- .cm-top-row {
347
- grid-template-columns: 1fr;
348
- }
349
- }
350
-
351
- :global(.cm-left-col) {
352
- padding: 1.25rem;
353
- border-right: 1px solid var(--cm-border);
354
- display: flex;
355
- flex-direction: column;
356
- gap: 1rem;
357
- }
358
-
359
- @media (max-width: 700px) {
360
- .cm-left-col {
361
- border-right: none;
362
- border-bottom: 1px solid var(--cm-border);
363
- }
364
- }
365
-
366
- :global(.cm-drop-zone) {
367
- position: relative;
368
- background: var(--cm-bg-muted);
369
- border: 2px dashed var(--cm-border);
370
- border-radius: 0.75rem;
371
- padding: 1.5rem 1rem;
372
- text-align: center;
373
- cursor: pointer;
374
- transition: border-color 0.2s, background 0.2s;
375
- display: flex;
376
- flex-direction: column;
377
- align-items: center;
378
- gap: 0.35rem;
379
- color: var(--cm-primary);
380
- }
381
-
382
- :global(.cm-drop-zone input[type="file"]) {
383
- position: absolute;
384
- inset: 0;
385
- opacity: 0;
386
- cursor: pointer;
387
- width: 100%;
388
- height: 100%;
389
- }
390
-
391
- :global(.cm-drop-zone:hover),
392
- :global(.cm-drop-zone-over) {
393
- border-color: var(--cm-primary);
394
- background: var(--cm-primary-light);
395
- }
396
-
397
- :global(.cm-drop-title) {
398
- font-size: 0.9rem;
399
- font-weight: 700;
400
- color: var(--cm-text);
401
- margin: 0;
402
- }
403
-
404
- :global(.cm-drop-sub) {
405
- font-size: 0.75rem;
406
- color: var(--cm-text-muted);
407
- margin: 0;
408
- }
409
-
410
- :global(.cm-drop-link) {
411
- color: var(--cm-primary);
412
- font-weight: 600;
413
- cursor: pointer;
414
- }
415
-
416
- :global(.cm-section-label) {
417
- display: block;
418
- font-size: 0.65rem;
419
- font-weight: 700;
420
- text-transform: uppercase;
421
- letter-spacing: 0.08em;
422
- color: var(--cm-text-muted);
423
- }
424
-
425
- :global(.cm-section-header) {
426
- display: flex;
427
- justify-content: space-between;
428
- align-items: center;
429
- }
430
-
431
- :global(.cm-badge) {
432
- background: var(--cm-primary-light);
433
- color: var(--cm-primary);
434
- font-size: 0.65rem;
435
- font-weight: 700;
436
- padding: 0.15rem 0.45rem;
437
- border-radius: 9999px;
438
- }
439
-
440
- :global(.cm-thumbs) {
441
- display: grid;
442
- grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
443
- gap: 0.35rem;
444
- margin-top: 0.5rem;
445
- }
446
-
447
- :global(.cm-thumb) {
448
- position: relative;
449
- aspect-ratio: 1;
450
- border-radius: 0.4rem;
451
- overflow: hidden;
452
- border: 2px solid transparent;
453
- transition: border-color 0.15s;
454
- }
455
-
456
- :global(.cm-thumb:hover) {
457
- border-color: var(--cm-primary);
458
- }
459
-
460
- :global(.cm-thumb img) {
461
- width: 100%;
462
- height: 100%;
463
- object-fit: cover;
464
- display: block;
465
- }
466
-
467
- :global(.cm-thumb-num) {
468
- position: absolute;
469
- bottom: 2px;
470
- left: 3px;
471
- font-size: 0.55rem;
472
- font-weight: 800;
473
- color: var(--cm-bg);
474
- text-shadow: 0 1px 2px rgba(0,0,0,0.8);
475
- line-height: 1;
476
- }
477
-
478
- :global(.cm-thumb-del) {
479
- position: absolute;
480
- top: 2px;
481
- right: 2px;
482
- width: 16px;
483
- height: 16px;
484
- background: rgba(239,68,68,0.9);
485
- color: var(--cm-bg);
486
- border: none;
487
- border-radius: 50%;
488
- cursor: pointer;
489
- display: none;
490
- align-items: center;
491
- justify-content: center;
492
- padding: 0;
493
- transition: background 0.15s;
494
- }
495
-
496
- :global(.cm-thumb:hover .cm-thumb-del) {
497
- display: flex;
498
- }
499
-
500
- :global(.cm-thumb-del:hover) {
501
- background: #dc2626;
502
- }
503
-
504
- :global(.cm-preview-col) {
505
- padding: 1.25rem;
506
- display: flex;
507
- flex-direction: column;
508
- gap: 0.5rem;
509
- min-height: 260px;
510
- }
511
-
512
- :global(.cm-preview-placeholder) {
513
- flex: 1;
514
- background: var(--cm-bg-muted);
515
- border: 2px dashed var(--cm-border);
516
- border-radius: 0.75rem;
517
- display: flex;
518
- flex-direction: column;
519
- align-items: center;
520
- justify-content: center;
521
- gap: 0.5rem;
522
- color: var(--cm-text-muted);
523
- }
524
-
525
- :global(.cm-preview-placeholder p) {
526
- font-size: 0.8rem;
527
- margin: 0;
528
- }
529
-
530
- :global(.cm-canvas) {
531
- width: 100%;
532
- height: auto;
533
- border-radius: 0.75rem;
534
- border: 1px solid var(--cm-border);
535
- display: block;
536
- }
537
-
538
- :global(.cm-dims-badge) {
539
- font-size: 0.65rem;
540
- font-weight: 600;
541
- color: var(--cm-text-muted);
542
- background: var(--cm-bg-muted);
543
- border: 1px solid var(--cm-border);
544
- border-radius: 9999px;
545
- padding: 0.15rem 0.5rem;
546
- }
547
-
548
- :global(.cm-section-divider) {
549
- border-top: 1px solid var(--cm-border);
550
- padding: 1rem 1.25rem;
551
- display: flex;
552
- flex-direction: column;
553
- gap: 0.75rem;
554
- }
555
-
556
- :global(.cm-layouts) {
557
- display: grid;
558
- grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
559
- gap: 0.4rem;
560
- }
561
-
562
- :global(.cm-layout-btn) {
563
- display: flex;
564
- flex-direction: column;
565
- align-items: center;
566
- gap: 0.2rem;
567
- padding: 0.5rem 0.25rem;
568
- background: var(--cm-bg-muted);
569
- border: 2px solid var(--cm-border);
570
- border-radius: 0.625rem;
571
- cursor: pointer;
572
- transition: border-color 0.15s, background 0.15s, opacity 0.15s;
573
- color: var(--cm-text-muted);
574
- position: relative;
575
- }
576
-
577
- :global(.cm-layout-btn span) {
578
- font-size: 0.55rem;
579
- font-weight: 600;
580
- text-align: center;
581
- line-height: 1.2;
582
- }
583
-
584
- :global(.cm-layout-btn:hover:not(:disabled)) {
585
- border-color: var(--cm-primary);
586
- color: var(--cm-primary);
587
- background: var(--cm-primary-light);
588
- }
589
-
590
- :global(.cm-layout-btn-active) {
591
- border-color: var(--cm-primary);
592
- background: var(--cm-primary-light);
593
- color: var(--cm-primary);
594
- }
595
-
596
- :global(.cm-layout-btn-disabled) {
597
- opacity: 0.45;
598
- cursor: not-allowed;
599
- }
600
-
601
- :global(.cm-layout-need) {
602
- position: absolute;
603
- top: 2px;
604
- right: 4px;
605
- font-size: 0.55rem;
606
- font-weight: 800;
607
- color: var(--cm-text-muted);
608
- background: var(--cm-bg);
609
- border: 1px solid var(--cm-border);
610
- border-radius: 9999px;
611
- padding: 0 3px;
612
- line-height: 1.4;
613
- }
614
-
615
- :global(.cm-settings-inline) {
616
- display: flex;
617
- flex-wrap: wrap;
618
- align-items: flex-end;
619
- gap: 1rem;
620
- }
621
-
622
- :global(.cm-setting) {
623
- display: flex;
624
- flex-direction: column;
625
- gap: 0.3rem;
626
- }
627
-
628
- :global(.cm-setting-label) {
629
- font-size: 0.7rem;
630
- font-weight: 600;
631
- color: var(--cm-text-muted);
632
- }
633
-
634
- :global(.cm-slider) {
635
- accent-color: var(--cm-primary);
636
- width: 120px;
637
- }
638
-
639
- :global(.cm-color-row) {
640
- display: flex;
641
- align-items: center;
642
- gap: 0.5rem;
643
- }
644
-
645
- :global(.cm-color-swatch) {
646
- width: 32px;
647
- height: 32px;
648
- border: 2px solid var(--cm-border);
649
- border-radius: 0.4rem;
650
- cursor: pointer;
651
- padding: 2px;
652
- background: transparent;
653
- }
654
-
655
- :global(.cm-color-code) {
656
- font-size: 0.7rem;
657
- font-weight: 600;
658
- color: var(--cm-text-muted);
659
- font-variant-numeric: tabular-nums;
660
- }
661
-
662
- :global(.cm-download-btn) {
663
- display: flex;
664
- align-items: center;
665
- gap: 0.4rem;
666
- padding: 0.6rem 1.25rem;
667
- background: linear-gradient(135deg, var(--cm-primary), #8b5cf6);
668
- color: var(--cm-bg);
669
- border: none;
670
- border-radius: 0.625rem;
671
- font-size: 0.875rem;
672
- font-weight: 700;
673
- cursor: pointer;
674
- transition: opacity 0.2s, transform 0.1s;
675
- box-shadow: 0 4px 12px rgba(99,102,241,0.3);
676
- white-space: nowrap;
677
- margin-left: auto;
678
- }
679
-
680
- :global(.cm-download-btn:disabled) {
681
- opacity: 0.4;
682
- cursor: not-allowed;
683
- box-shadow: none;
684
- }
685
-
686
- :global(.cm-download-btn:not(:disabled):hover) {
687
- transform: translateY(-1px);
688
- box-shadow: 0 6px 18px rgba(99,102,241,0.4);
689
- }
690
- </style>