@jjlmoya/utils-audiovisual 1.14.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.
- package/package.json +7 -4
- package/scripts/postinstall.mjs +27 -0
- package/src/entries.ts +32 -0
- package/src/tool/chromaticLens/chromatic-lens-color-palette-extraction-online.css +308 -0
- package/src/tool/chromaticLens/component.astro +0 -309
- package/src/tool/chromaticLens/entry.ts +39 -0
- package/src/tool/chromaticLens/index.ts +2 -41
- package/src/tool/collageMaker/component.astro +0 -387
- package/src/tool/collageMaker/entry.ts +48 -0
- package/src/tool/collageMaker/free-online-photo-collage-maker-professional-compositions.css +386 -0
- package/src/tool/collageMaker/index.ts +2 -50
- package/src/tool/exifCleaner/component.astro +0 -290
- package/src/tool/exifCleaner/entry.ts +53 -0
- package/src/tool/exifCleaner/exif-metadata-cleaner-remove-gps-photo-privacy.css +289 -0
- package/src/tool/exifCleaner/index.ts +2 -55
- package/src/tool/imageCompressor/component.astro +0 -498
- package/src/tool/imageCompressor/entry.ts +56 -0
- package/src/tool/imageCompressor/index.ts +2 -58
- package/src/tool/imageCompressor/online-image-compressor-reduce-file-size-no-quality-loss.css +496 -0
- package/src/tool/printQualityCalculator/component.astro +0 -485
- package/src/tool/printQualityCalculator/entry.ts +66 -0
- package/src/tool/printQualityCalculator/index.ts +2 -68
- package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +483 -0
- package/src/tool/privacyBlur/component.astro +0 -334
- package/src/tool/privacyBlur/entry.ts +45 -0
- package/src/tool/privacyBlur/index.ts +2 -47
- package/src/tool/privacyBlur/online-privacy-editor-pixelate-blur-faces-photos.css +332 -0
- package/src/tool/subtitleSync/component.astro +0 -327
- package/src/tool/subtitleSync/entry.ts +45 -0
- package/src/tool/subtitleSync/index.ts +2 -47
- package/src/tool/subtitleSync/synchronize-srt-subtitles-online-adjust-timing-free.css +325 -0
- package/src/tool/timelapseCalculator/component.astro +0 -285
- package/src/tool/timelapseCalculator/entry.ts +48 -0
- package/src/tool/timelapseCalculator/index.ts +2 -50
- package/src/tool/timelapseCalculator/timelapse-hyperlapse-calculator-perfect-intervals.css +283 -0
- package/src/tool/tvDistance/component.astro +0 -437
- package/src/tool/tvDistance/entry.ts +45 -0
- package/src/tool/tvDistance/index.ts +2 -47
- package/src/tool/tvDistance/tv-viewing-distance-calculator-thx-4k-optimal-screen.css +435 -0
- package/src/tool/videoFrameExtractor/component.astro +0 -428
- package/src/tool/videoFrameExtractor/entry.ts +49 -0
- package/src/tool/videoFrameExtractor/index.ts +2 -51
- package/src/tool/videoFrameExtractor/online-video-frame-extractor-capture-hd-stills.css +426 -0
- package/src/tools.ts +1 -1
|
@@ -341,488 +341,3 @@ const { ui } = Astro.props;
|
|
|
341
341
|
document.addEventListener("astro:page-load", initPQCalc);
|
|
342
342
|
</script>
|
|
343
343
|
|
|
344
|
-
<style>
|
|
345
|
-
:root {
|
|
346
|
-
--pq-bg: #fff;
|
|
347
|
-
--pq-border: #cbd5e1;
|
|
348
|
-
--pq-primary: #6366f1;
|
|
349
|
-
--pq-primary-light: #e0e7ff;
|
|
350
|
-
--pq-accent: #4f46e5;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
:global(.theme-dark) {
|
|
354
|
-
--pq-bg: #0f172a;
|
|
355
|
-
--pq-border: #334155;
|
|
356
|
-
--pq-primary: #6366f1;
|
|
357
|
-
--pq-primary-light: rgba(99, 102, 241, 0.2);
|
|
358
|
-
--pq-accent: #818cf8;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
:global(.pq-wrapper) {
|
|
362
|
-
width: 100%;
|
|
363
|
-
max-width: 56rem;
|
|
364
|
-
margin: 0 auto;
|
|
365
|
-
display: flex;
|
|
366
|
-
flex-direction: column;
|
|
367
|
-
gap: 2rem;
|
|
368
|
-
padding: 1rem;
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
.pq-hidden {
|
|
372
|
-
display: none;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
:global(.pq-drop-zone) {
|
|
376
|
-
position: relative;
|
|
377
|
-
cursor: pointer;
|
|
378
|
-
border: 2px dashed var(--pq-border);
|
|
379
|
-
border-radius: 1rem;
|
|
380
|
-
padding: 3rem;
|
|
381
|
-
transition: border-color 0.3s, background 0.3s;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
:global(.theme-dark .pq-drop-zone) {
|
|
385
|
-
border-color: var(--pq-border);
|
|
386
|
-
}
|
|
387
|
-
:global(.pq-drop-zone:hover),
|
|
388
|
-
:global(.pq-drop-zone.pq-drop-active) {
|
|
389
|
-
border-color: var(--pq-primary);
|
|
390
|
-
background: rgba(99, 102, 241, 0.04);
|
|
391
|
-
}
|
|
392
|
-
:global(.pq-drop-inner) {
|
|
393
|
-
display: flex;
|
|
394
|
-
flex-direction: column;
|
|
395
|
-
align-items: center;
|
|
396
|
-
justify-content: center;
|
|
397
|
-
text-align: center;
|
|
398
|
-
gap: 1rem;
|
|
399
|
-
}
|
|
400
|
-
:global(.pq-upload-icon-wrap) {
|
|
401
|
-
width: 5rem;
|
|
402
|
-
height: 5rem;
|
|
403
|
-
background: var(--pq-primary-light);
|
|
404
|
-
border-radius: 50%;
|
|
405
|
-
display: flex;
|
|
406
|
-
align-items: center;
|
|
407
|
-
justify-content: center;
|
|
408
|
-
color: var(--pq-accent);
|
|
409
|
-
transition: transform 0.3s;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
:global(.theme-dark .pq-upload-icon-wrap) {
|
|
413
|
-
background: rgba(99, 102, 241, 0.2);
|
|
414
|
-
color: #818cf8;
|
|
415
|
-
}
|
|
416
|
-
:global(.pq-drop-zone:hover .pq-upload-icon-wrap) {
|
|
417
|
-
transform: scale(1.1);
|
|
418
|
-
}
|
|
419
|
-
:global(.pq-drop-title) {
|
|
420
|
-
font-size: 1.25rem;
|
|
421
|
-
font-weight: 700;
|
|
422
|
-
color: #0f172a;
|
|
423
|
-
margin: 0;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
:global(.theme-dark .pq-drop-title) {
|
|
427
|
-
color: #f1f5f9;
|
|
428
|
-
}
|
|
429
|
-
:global(.pq-drop-sub) {
|
|
430
|
-
color: #64748b;
|
|
431
|
-
margin: 0.25rem 0 0;
|
|
432
|
-
font-size: 0.95rem;
|
|
433
|
-
}
|
|
434
|
-
:global(.pq-drop-overlay) {
|
|
435
|
-
position: absolute;
|
|
436
|
-
inset: 0;
|
|
437
|
-
background: linear-gradient(135deg, rgba(99,102,241,0.04), rgba(168,85,247,0.04));
|
|
438
|
-
border-radius: 1rem;
|
|
439
|
-
opacity: 0;
|
|
440
|
-
pointer-events: none;
|
|
441
|
-
transition: opacity 0.3s;
|
|
442
|
-
}
|
|
443
|
-
:global(.pq-drop-zone:hover .pq-drop-overlay) { opacity: 1; }
|
|
444
|
-
|
|
445
|
-
:global(.pq-results) {
|
|
446
|
-
display: flex;
|
|
447
|
-
flex-direction: column;
|
|
448
|
-
gap: 2rem;
|
|
449
|
-
animation: pq-fade-up 0.5s ease-out;
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
@keyframes pq-fade-up {
|
|
453
|
-
from {
|
|
454
|
-
opacity: 0;
|
|
455
|
-
transform: translateY(1.25rem);
|
|
456
|
-
}
|
|
457
|
-
to {
|
|
458
|
-
opacity: 1;
|
|
459
|
-
transform: translateY(0);
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
:global(.pq-file-card) {
|
|
464
|
-
background: #fff;
|
|
465
|
-
border: 1px solid #e2e8f0;
|
|
466
|
-
border-radius: 0.75rem;
|
|
467
|
-
box-shadow: 0 4px 24px -8px rgba(0,0,0,0.1);
|
|
468
|
-
padding: 1.5rem;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
:global(.theme-dark .pq-file-card) {
|
|
472
|
-
background: #0f172a;
|
|
473
|
-
border-color: #1e293b;
|
|
474
|
-
}
|
|
475
|
-
:global(.pq-file-left) {
|
|
476
|
-
display: flex;
|
|
477
|
-
align-items: center;
|
|
478
|
-
gap: 1.5rem;
|
|
479
|
-
}
|
|
480
|
-
:global(.pq-preview-wrap) {
|
|
481
|
-
position: relative;
|
|
482
|
-
width: 8rem;
|
|
483
|
-
height: 8rem;
|
|
484
|
-
flex-shrink: 0;
|
|
485
|
-
}
|
|
486
|
-
:global(.pq-preview-img) {
|
|
487
|
-
width: 100%;
|
|
488
|
-
height: 100%;
|
|
489
|
-
object-fit: cover;
|
|
490
|
-
border-radius: 0.5rem;
|
|
491
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
|
|
492
|
-
}
|
|
493
|
-
:global(.pq-file-name) {
|
|
494
|
-
font-weight: 700;
|
|
495
|
-
color: #0f172a;
|
|
496
|
-
font-size: 1rem;
|
|
497
|
-
margin: 0 0 0.5rem;
|
|
498
|
-
overflow: hidden;
|
|
499
|
-
text-overflow: ellipsis;
|
|
500
|
-
white-space: nowrap;
|
|
501
|
-
max-width: 20rem;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
:global(.theme-dark .pq-file-name) {
|
|
505
|
-
color: #f1f5f9;
|
|
506
|
-
}
|
|
507
|
-
:global(.pq-file-meta) {
|
|
508
|
-
display: flex;
|
|
509
|
-
flex-wrap: wrap;
|
|
510
|
-
gap: 1rem;
|
|
511
|
-
}
|
|
512
|
-
:global(.pq-meta-item) {
|
|
513
|
-
display: flex;
|
|
514
|
-
align-items: center;
|
|
515
|
-
gap: 0.25rem;
|
|
516
|
-
font-size: 0.85rem;
|
|
517
|
-
color: #64748b;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
:global(.pq-main-grid) {
|
|
521
|
-
display: grid;
|
|
522
|
-
grid-template-columns: 1fr 1fr;
|
|
523
|
-
gap: 2rem;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
@media (max-width: 640px) {
|
|
527
|
-
.pq-main-grid { grid-template-columns: 1fr; }
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
:global(.pq-config-panel) {
|
|
531
|
-
background: #f8fafc;
|
|
532
|
-
border: 1px solid #e2e8f0;
|
|
533
|
-
border-radius: 0.75rem;
|
|
534
|
-
padding: 1.5rem;
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
:global(.theme-dark .pq-config-panel) {
|
|
538
|
-
background: rgba(30, 41, 59, 0.5);
|
|
539
|
-
border-color: var(--pq-border);
|
|
540
|
-
}
|
|
541
|
-
:global(.pq-config-label) {
|
|
542
|
-
display: block;
|
|
543
|
-
font-size: 0.875rem;
|
|
544
|
-
font-weight: 500;
|
|
545
|
-
color: #475569;
|
|
546
|
-
margin-bottom: 1rem;
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
:global(.theme-dark .pq-config-label) {
|
|
550
|
-
color: #94a3b8;
|
|
551
|
-
}
|
|
552
|
-
:global(.pq-slider) {
|
|
553
|
-
width: 100%;
|
|
554
|
-
height: 0.5rem;
|
|
555
|
-
background: #e2e8f0;
|
|
556
|
-
border-radius: 0.5rem;
|
|
557
|
-
appearance: none;
|
|
558
|
-
cursor: pointer;
|
|
559
|
-
accent-color: #6366f1;
|
|
560
|
-
margin-bottom: 1rem;
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
:global(.theme-dark .pq-slider) {
|
|
564
|
-
background: #334155;
|
|
565
|
-
}
|
|
566
|
-
:global(.pq-dpi-row) {
|
|
567
|
-
display: flex;
|
|
568
|
-
align-items: center;
|
|
569
|
-
gap: 1rem;
|
|
570
|
-
margin-bottom: 1.5rem;
|
|
571
|
-
}
|
|
572
|
-
:global(.pq-dpi-number) {
|
|
573
|
-
width: 6rem;
|
|
574
|
-
border: 1px solid #e2e8f0;
|
|
575
|
-
border-radius: 0.5rem;
|
|
576
|
-
background: #fff;
|
|
577
|
-
color: #0f172a;
|
|
578
|
-
font-size: 1rem;
|
|
579
|
-
font-weight: 700;
|
|
580
|
-
text-align: center;
|
|
581
|
-
padding: 0.4rem 0.5rem;
|
|
582
|
-
outline: none;
|
|
583
|
-
}
|
|
584
|
-
:global(.pq-dpi-number:focus) { border-color: var(--pq-primary); }
|
|
585
|
-
|
|
586
|
-
:global(.theme-dark .pq-dpi-number) {
|
|
587
|
-
background: #0f172a;
|
|
588
|
-
border-color: var(--pq-border);
|
|
589
|
-
color: #f1f5f9;
|
|
590
|
-
}
|
|
591
|
-
:global(.pq-dpi-label) {
|
|
592
|
-
font-size: 0.875rem;
|
|
593
|
-
color: #64748b;
|
|
594
|
-
}
|
|
595
|
-
:global(.pq-presets) {
|
|
596
|
-
display: flex;
|
|
597
|
-
flex-wrap: wrap;
|
|
598
|
-
gap: 0.5rem;
|
|
599
|
-
}
|
|
600
|
-
:global(.pq-preset-btn) {
|
|
601
|
-
padding: 0.25rem 0.75rem;
|
|
602
|
-
font-size: 0.75rem;
|
|
603
|
-
font-weight: 500;
|
|
604
|
-
border-radius: 999px;
|
|
605
|
-
background: #e2e8f0;
|
|
606
|
-
color: #475569;
|
|
607
|
-
border: none;
|
|
608
|
-
cursor: pointer;
|
|
609
|
-
transition: background 0.15s, color 0.15s;
|
|
610
|
-
}
|
|
611
|
-
:global(.pq-preset-btn:hover) { background: #cbd5e1; }
|
|
612
|
-
|
|
613
|
-
:global(.theme-dark .pq-preset-btn) {
|
|
614
|
-
background: #334155;
|
|
615
|
-
color: #94a3b8;
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
:global(.theme-dark .pq-preset-btn:hover) {
|
|
619
|
-
background: #475569;
|
|
620
|
-
}
|
|
621
|
-
:global(.pq-preset-active) {
|
|
622
|
-
background: var(--pq-primary-light);
|
|
623
|
-
color: #4338ca;
|
|
624
|
-
box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.2);
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
:global(.theme-dark .pq-preset-active) {
|
|
628
|
-
background: rgba(99, 102, 241, 0.3);
|
|
629
|
-
color: #a5b4fc;
|
|
630
|
-
}
|
|
631
|
-
|
|
632
|
-
:global(.pq-output-panel) {
|
|
633
|
-
display: flex;
|
|
634
|
-
}
|
|
635
|
-
:global(.pq-output-gradient) {
|
|
636
|
-
flex: 1;
|
|
637
|
-
display: flex;
|
|
638
|
-
flex-direction: column;
|
|
639
|
-
justify-content: center;
|
|
640
|
-
background: linear-gradient(135deg, #6366f1, #a855f7);
|
|
641
|
-
border-radius: 0.75rem;
|
|
642
|
-
padding: 1.5rem;
|
|
643
|
-
color: #fff;
|
|
644
|
-
box-shadow: 0 10px 40px -10px rgba(99,102,241,0.4);
|
|
645
|
-
position: relative;
|
|
646
|
-
overflow: hidden;
|
|
647
|
-
}
|
|
648
|
-
:global(.pq-output-blur-bg) {
|
|
649
|
-
position: absolute;
|
|
650
|
-
top: 0; right: 0;
|
|
651
|
-
width: 8rem; height: 8rem;
|
|
652
|
-
background: rgba(255,255,255,0.1);
|
|
653
|
-
border-radius: 50%;
|
|
654
|
-
filter: blur(2rem);
|
|
655
|
-
transform: translate(2rem, -2rem);
|
|
656
|
-
pointer-events: none;
|
|
657
|
-
}
|
|
658
|
-
:global(.pq-output-subtitle) {
|
|
659
|
-
font-size: 0.75rem;
|
|
660
|
-
font-weight: 500;
|
|
661
|
-
text-transform: uppercase;
|
|
662
|
-
letter-spacing: 0.05em;
|
|
663
|
-
color: rgba(224,231,255,0.9);
|
|
664
|
-
margin: 0 0 0.5rem;
|
|
665
|
-
position: relative;
|
|
666
|
-
}
|
|
667
|
-
:global(.pq-output-size) {
|
|
668
|
-
display: flex;
|
|
669
|
-
align-items: baseline;
|
|
670
|
-
gap: 0.5rem;
|
|
671
|
-
font-size: 2.5rem;
|
|
672
|
-
font-weight: 900;
|
|
673
|
-
margin-bottom: 0.25rem;
|
|
674
|
-
position: relative;
|
|
675
|
-
}
|
|
676
|
-
:global(.pq-size-sep) {
|
|
677
|
-
font-size: 1.5rem;
|
|
678
|
-
opacity: 0.5;
|
|
679
|
-
}
|
|
680
|
-
:global(.pq-size-unit) {
|
|
681
|
-
font-size: 1.5rem;
|
|
682
|
-
}
|
|
683
|
-
:global(.pq-output-inches) {
|
|
684
|
-
color: rgba(199, 210, 254, 0.8);
|
|
685
|
-
font-size: 0.875rem;
|
|
686
|
-
margin-bottom: 1.5rem;
|
|
687
|
-
position: relative;
|
|
688
|
-
}
|
|
689
|
-
:global(.pq-quality-section) {
|
|
690
|
-
padding-top: 1rem;
|
|
691
|
-
border-top: 1px solid rgba(255,255,255,0.2);
|
|
692
|
-
position: relative;
|
|
693
|
-
}
|
|
694
|
-
:global(.pq-quality-badge) {
|
|
695
|
-
display: inline-flex;
|
|
696
|
-
align-items: center;
|
|
697
|
-
gap: 0.375rem;
|
|
698
|
-
padding: 0.25rem 0.75rem;
|
|
699
|
-
border-radius: 999px;
|
|
700
|
-
font-size: 0.875rem;
|
|
701
|
-
font-weight: 700;
|
|
702
|
-
background: rgba(255,255,255,0.2);
|
|
703
|
-
backdrop-filter: blur(4px);
|
|
704
|
-
margin-bottom: 0.5rem;
|
|
705
|
-
}
|
|
706
|
-
:global(.pq-badge-green) {
|
|
707
|
-
background: rgba(16, 185, 129, 0.25);
|
|
708
|
-
box-shadow: 0 0 0 1px rgba(52, 211, 153, 0.3);
|
|
709
|
-
}
|
|
710
|
-
|
|
711
|
-
:global(.pq-badge-yellow) {
|
|
712
|
-
background: rgba(234, 179, 8, 0.25);
|
|
713
|
-
box-shadow: 0 0 0 1px rgba(253, 224, 71, 0.3);
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
:global(.pq-badge-red) {
|
|
717
|
-
background: rgba(239, 68, 68, 0.25);
|
|
718
|
-
box-shadow: 0 0 0 1px rgba(252, 165, 165, 0.3);
|
|
719
|
-
}
|
|
720
|
-
|
|
721
|
-
:global(.pq-badge-slate) {
|
|
722
|
-
background: rgba(100, 116, 139, 0.25);
|
|
723
|
-
box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.3);
|
|
724
|
-
}
|
|
725
|
-
:global(.pq-quality-desc) {
|
|
726
|
-
font-size: 0.875rem;
|
|
727
|
-
color: rgba(199,210,254,0.9);
|
|
728
|
-
line-height: 1.4;
|
|
729
|
-
margin: 0;
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
:global(.pq-formats-card) {
|
|
733
|
-
background: #fff;
|
|
734
|
-
border: 1px solid #e2e8f0;
|
|
735
|
-
border-radius: 0.75rem;
|
|
736
|
-
padding: 1.5rem;
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
:global(.theme-dark .pq-formats-card) {
|
|
740
|
-
background: #0f172a;
|
|
741
|
-
border-color: #1e293b;
|
|
742
|
-
}
|
|
743
|
-
:global(.pq-formats-title) {
|
|
744
|
-
display: flex;
|
|
745
|
-
align-items: center;
|
|
746
|
-
gap: 0.5rem;
|
|
747
|
-
font-weight: 700;
|
|
748
|
-
font-size: 1rem;
|
|
749
|
-
color: #0f172a;
|
|
750
|
-
margin: 0 0 1rem;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
:global(.theme-dark .pq-formats-title) {
|
|
754
|
-
color: #f1f5f9;
|
|
755
|
-
}
|
|
756
|
-
:global(.pq-formats-scroll) {
|
|
757
|
-
overflow-x: auto;
|
|
758
|
-
}
|
|
759
|
-
:global(.pq-formats-table) {
|
|
760
|
-
width: 100%;
|
|
761
|
-
border-collapse: collapse;
|
|
762
|
-
font-size: 0.875rem;
|
|
763
|
-
}
|
|
764
|
-
:global(.pq-formats-table th) {
|
|
765
|
-
text-align: left;
|
|
766
|
-
padding: 0.75rem 1rem;
|
|
767
|
-
font-size: 0.75rem;
|
|
768
|
-
font-weight: 700;
|
|
769
|
-
text-transform: uppercase;
|
|
770
|
-
letter-spacing: 0.05em;
|
|
771
|
-
color: #475569;
|
|
772
|
-
background: #f8fafc;
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
:global(.theme-dark .pq-formats-table th) {
|
|
776
|
-
background: #1e293b;
|
|
777
|
-
color: #94a3b8;
|
|
778
|
-
}
|
|
779
|
-
:global(.pq-formats-row) {
|
|
780
|
-
border-bottom: 1px solid #f1f5f9;
|
|
781
|
-
transition: background 0.15s;
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
:global(.pq-formats-row:hover) {
|
|
785
|
-
background: #f8fafc;
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
:global(.theme-dark .pq-formats-row) {
|
|
789
|
-
border-color: #1e293b;
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
:global(.theme-dark .pq-formats-row:hover) {
|
|
793
|
-
background: #1e293b;
|
|
794
|
-
}
|
|
795
|
-
:global(.pq-td) {
|
|
796
|
-
padding: 0.75rem 1rem;
|
|
797
|
-
color: #475569;
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
:global(.theme-dark .pq-td) {
|
|
801
|
-
color: #94a3b8;
|
|
802
|
-
}
|
|
803
|
-
:global(.pq-td-name) {
|
|
804
|
-
font-weight: 600;
|
|
805
|
-
color: #0f172a;
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
:global(.theme-dark .pq-td-name) {
|
|
809
|
-
color: #f1f5f9;
|
|
810
|
-
}
|
|
811
|
-
:global(.pq-status) {
|
|
812
|
-
display: inline-flex;
|
|
813
|
-
align-items: center;
|
|
814
|
-
gap: 0.35rem;
|
|
815
|
-
font-weight: 600;
|
|
816
|
-
font-size: 0.8rem;
|
|
817
|
-
}
|
|
818
|
-
:global(.pq-status-ok) { color: #16a34a; }
|
|
819
|
-
:global(.pq-status-no) { color: #d97706; }
|
|
820
|
-
|
|
821
|
-
:global(.theme-dark .pq-status-ok) {
|
|
822
|
-
color: #4ade80;
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
:global(.theme-dark .pq-status-no) {
|
|
826
|
-
color: #fbbf24;
|
|
827
|
-
}
|
|
828
|
-
</style>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { AudiovisualToolEntry, ToolLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface PrintQualityCalculatorUI {
|
|
4
|
+
dropTitle: string;
|
|
5
|
+
dropSubtitle: string;
|
|
6
|
+
resultsTitle: string;
|
|
7
|
+
dpiDensityLabel: string;
|
|
8
|
+
dpiPointsLabel: string;
|
|
9
|
+
maxPrintTitle: string;
|
|
10
|
+
standardFormatsTitle: string;
|
|
11
|
+
formatColumn: string;
|
|
12
|
+
measureColumn: string;
|
|
13
|
+
supportColumn: string;
|
|
14
|
+
qualityExcellent: string;
|
|
15
|
+
qualityGood: string;
|
|
16
|
+
qualityFair: string;
|
|
17
|
+
qualityPoor: string;
|
|
18
|
+
qualityExcellentDesc: string;
|
|
19
|
+
qualityGoodDesc: string;
|
|
20
|
+
qualityFairDesc: string;
|
|
21
|
+
qualityPoorDesc: string;
|
|
22
|
+
unitCm: string;
|
|
23
|
+
unitInches: string;
|
|
24
|
+
dpiScreenLabel: string;
|
|
25
|
+
dpiNewspaperLabel: string;
|
|
26
|
+
dpiPrintLabel: string;
|
|
27
|
+
dpiFineArtLabel: string;
|
|
28
|
+
formatPostal: string;
|
|
29
|
+
formatQuartilla: string;
|
|
30
|
+
formatFolio: string;
|
|
31
|
+
formatDoubleFolio: string;
|
|
32
|
+
formatSmallPoster: string;
|
|
33
|
+
formatLargePoster: string;
|
|
34
|
+
formatPlane: string;
|
|
35
|
+
supportedText: string;
|
|
36
|
+
notSupportedPrefix: string;
|
|
37
|
+
invalidImageError: string;
|
|
38
|
+
[key: string]: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type PrintQualityCalculatorLocaleContent = ToolLocaleContent<PrintQualityCalculatorUI>;
|
|
42
|
+
|
|
43
|
+
export const printQualityCalculator: AudiovisualToolEntry<PrintQualityCalculatorUI> = {
|
|
44
|
+
id: 'calidad-impresion',
|
|
45
|
+
icons: {
|
|
46
|
+
bg: 'mdi:printer',
|
|
47
|
+
fg: 'mdi:ruler-square',
|
|
48
|
+
},
|
|
49
|
+
i18n: {
|
|
50
|
+
es: async () => (await import('./i18n/es')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
51
|
+
en: async () => (await import('./i18n/en')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
52
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
53
|
+
de: async () => (await import('./i18n/de')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
54
|
+
it: async () => (await import('./i18n/it')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
55
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
56
|
+
id: async () => (await import('./i18n/id')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
57
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
58
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
59
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
60
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
61
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
62
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
63
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
64
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
@@ -1,71 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export interface PrintQualityCalculatorUI {
|
|
4
|
-
dropTitle: string;
|
|
5
|
-
dropSubtitle: string;
|
|
6
|
-
resultsTitle: string;
|
|
7
|
-
dpiDensityLabel: string;
|
|
8
|
-
dpiPointsLabel: string;
|
|
9
|
-
maxPrintTitle: string;
|
|
10
|
-
standardFormatsTitle: string;
|
|
11
|
-
formatColumn: string;
|
|
12
|
-
measureColumn: string;
|
|
13
|
-
supportColumn: string;
|
|
14
|
-
qualityExcellent: string;
|
|
15
|
-
qualityGood: string;
|
|
16
|
-
qualityFair: string;
|
|
17
|
-
qualityPoor: string;
|
|
18
|
-
qualityExcellentDesc: string;
|
|
19
|
-
qualityGoodDesc: string;
|
|
20
|
-
qualityFairDesc: string;
|
|
21
|
-
qualityPoorDesc: string;
|
|
22
|
-
unitCm: string;
|
|
23
|
-
unitInches: string;
|
|
24
|
-
dpiScreenLabel: string;
|
|
25
|
-
dpiNewspaperLabel: string;
|
|
26
|
-
dpiPrintLabel: string;
|
|
27
|
-
dpiFineArtLabel: string;
|
|
28
|
-
formatPostal: string;
|
|
29
|
-
formatQuartilla: string;
|
|
30
|
-
formatFolio: string;
|
|
31
|
-
formatDoubleFolio: string;
|
|
32
|
-
formatSmallPoster: string;
|
|
33
|
-
formatLargePoster: string;
|
|
34
|
-
formatPlane: string;
|
|
35
|
-
supportedText: string;
|
|
36
|
-
notSupportedPrefix: string;
|
|
37
|
-
invalidImageError: string;
|
|
38
|
-
[key: string]: string;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export type PrintQualityCalculatorLocaleContent = ToolLocaleContent<PrintQualityCalculatorUI>;
|
|
42
|
-
|
|
43
|
-
export const printQualityCalculator: AudiovisualToolEntry<PrintQualityCalculatorUI> = {
|
|
44
|
-
id: 'calidad-impresion',
|
|
45
|
-
icons: {
|
|
46
|
-
bg: 'mdi:printer',
|
|
47
|
-
fg: 'mdi:ruler-square',
|
|
48
|
-
},
|
|
49
|
-
i18n: {
|
|
50
|
-
es: async () => (await import('./i18n/es')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
51
|
-
en: async () => (await import('./i18n/en')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
52
|
-
fr: async () => (await import('./i18n/fr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
53
|
-
de: async () => (await import('./i18n/de')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
54
|
-
it: async () => (await import('./i18n/it')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
55
|
-
pt: async () => (await import('./i18n/pt')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
56
|
-
id: async () => (await import('./i18n/id')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
57
|
-
ja: async () => (await import('./i18n/ja')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
58
|
-
ko: async () => (await import('./i18n/ko')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
59
|
-
nl: async () => (await import('./i18n/nl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
60
|
-
pl: async () => (await import('./i18n/pl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
61
|
-
ru: async () => (await import('./i18n/ru')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
62
|
-
sv: async () => (await import('./i18n/sv')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
63
|
-
tr: async () => (await import('./i18n/tr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
64
|
-
zh: async () => (await import('./i18n/zh')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
65
|
-
},
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
import { printQualityCalculator } from './entry';
|
|
2
|
+
export * from './entry';
|
|
69
3
|
export const PRINT_QUALITY_CALCULATOR_TOOL: ToolDefinition = {
|
|
70
4
|
entry: printQualityCalculator as unknown as AudiovisualToolEntry,
|
|
71
5
|
Component: () => import('./component.astro'),
|