@jjlmoya/utils-developer 1.12.0 → 1.13.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 (50) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/tool/aspectRatio/aspect-ratio-calculator.css +276 -0
  4. package/src/tool/aspectRatio/component.astro +0 -278
  5. package/src/tool/calculadoraTiempoDatos/component.astro +0 -524
  6. package/src/tool/calculadoraTiempoDatos/data-time-calculator-web-speed-impact.css +522 -0
  7. package/src/tool/colorConverter/color-converter-rgb-hex-hsl.css +262 -0
  8. package/src/tool/colorConverter/component.astro +0 -264
  9. package/src/tool/conversorExcelCsvHtml/component.astro +0 -360
  10. package/src/tool/conversorExcelCsvHtml/excel-csv-html-table-converter.css +358 -0
  11. package/src/tool/cronGenerator/component.astro +0 -317
  12. package/src/tool/cronGenerator/cron.css +315 -0
  13. package/src/tool/cssSpecificityCalculator/component.astro +0 -205
  14. package/src/tool/cssSpecificityCalculator/css-specificity-calculator.css +203 -0
  15. package/src/tool/cssToInlineConverter/component.astro +0 -150
  16. package/src/tool/cssToInlineConverter/css-to-inline-converter.css +148 -0
  17. package/src/tool/duplicateCssRemover/component.astro +0 -197
  18. package/src/tool/duplicateCssRemover/duplicate-css-remover.css +195 -0
  19. package/src/tool/generadorSecurityTxt/component.astro +0 -231
  20. package/src/tool/generadorSecurityTxt/security-txt-generator-rfc-9116.css +229 -0
  21. package/src/tool/hashGenerator/component.astro +0 -229
  22. package/src/tool/hashGenerator/hash-generator.css +227 -0
  23. package/src/tool/inspectorCertificadosSsl/component.astro +0 -261
  24. package/src/tool/inspectorCertificadosSsl/ssl-tls-certificate-inspector.css +259 -0
  25. package/src/tool/jsonFormatter/component.astro +0 -346
  26. package/src/tool/jsonFormatter/json-formatter.css +344 -0
  27. package/src/tool/keycode/component.astro +0 -298
  28. package/src/tool/keycode/keycode.css +296 -0
  29. package/src/tool/llmCostCalculator/component.astro +0 -253
  30. package/src/tool/llmCostCalculator/llm-cost-calculator.css +251 -0
  31. package/src/tool/mobileMockupGenerator/component.astro +0 -906
  32. package/src/tool/mobileMockupGenerator/mobile-mockup-generator.css +904 -0
  33. package/src/tool/musicalTypography/component.astro +0 -291
  34. package/src/tool/musicalTypography/musical-typography.css +289 -0
  35. package/src/tool/placeholderGenerator/component.astro +0 -255
  36. package/src/tool/placeholderGenerator/placeholder-image-generator.css +253 -0
  37. package/src/tool/promptLibrary/component.astro +0 -689
  38. package/src/tool/promptLibrary/prompt-library.css +687 -0
  39. package/src/tool/readabilityCalculator/component.astro +0 -322
  40. package/src/tool/readabilityCalculator/visual-readability-calculator-wcag-apca.css +320 -0
  41. package/src/tool/svgSanitizer/component.astro +0 -289
  42. package/src/tool/svgSanitizer/svg-sanitizer.css +287 -0
  43. package/src/tool/svgToCss/component.astro +0 -196
  44. package/src/tool/svgToCss/svg-to-css-converter.css +194 -0
  45. package/src/tool/urlCleaner/component.astro +0 -282
  46. package/src/tool/urlCleaner/url-tracking-cleaner.css +280 -0
  47. package/src/tool/urlEncoderDecoder/component.astro +0 -168
  48. package/src/tool/urlEncoderDecoder/url-encoder-decoder.css +166 -0
  49. package/src/tool/utmGenerator/component.astro +0 -156
  50. package/src/tool/utmGenerator/utm-generator.css +154 -0
@@ -303,527 +303,3 @@ const t = (ui ?? {}) as CalculadoraTiempoDatosUI;
303
303
  }
304
304
  </script>
305
305
 
306
- <style>
307
- .ctd-wrapper {
308
- --ctd-primary: #6366f1;
309
- --ctd-secondary: #8b5cf6;
310
- --ctd-accent: #ec4899;
311
-
312
- display: flex;
313
- align-items: center;
314
- justify-content: center;
315
- padding: 2rem 1rem;
316
- min-height: 100vh;
317
- }
318
-
319
- .ctd-card {
320
- background: white;
321
- border-radius: 2.5rem;
322
- padding: 3rem;
323
- max-width: 700px;
324
- width: 100%;
325
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
326
- }
327
-
328
- :global(.theme-dark) .ctd-card {
329
- background: rgb(30, 41, 59);
330
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
331
- }
332
-
333
- .ctd-header {
334
- display: flex;
335
- align-items: center;
336
- gap: 1.2rem;
337
- margin-bottom: 3rem;
338
- }
339
-
340
- .ctd-icon {
341
- width: 60px;
342
- height: 60px;
343
- background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #ec4899 100%);
344
- border-radius: 1.2rem;
345
- display: flex;
346
- align-items: center;
347
- justify-content: center;
348
- color: white;
349
- box-shadow: 0 10px 25px rgba(99, 102, 241, 0.3);
350
- flex-shrink: 0;
351
- }
352
-
353
- .ctd-icon :global(svg) {
354
- width: 32px;
355
- height: 32px;
356
- }
357
-
358
- .ctd-header h2 {
359
- font-size: 2rem;
360
- font-weight: 900;
361
- margin: 0;
362
- color: rgb(15, 23, 42);
363
- letter-spacing: -0.02em;
364
- }
365
-
366
- :global(.theme-dark) .ctd-header h2 {
367
- color: rgb(241, 245, 249);
368
- }
369
-
370
- .ctd-input-section {
371
- margin-bottom: 2.5rem;
372
- }
373
-
374
- .ctd-input-section > label {
375
- display: block;
376
- font-size: 0.85rem;
377
- font-weight: 700;
378
- color: rgb(100, 116, 139);
379
- margin-bottom: 0.8rem;
380
- text-transform: uppercase;
381
- letter-spacing: 0.05em;
382
- }
383
-
384
- :global(.theme-dark) .ctd-input-section > label {
385
- color: rgb(203, 213, 225);
386
- }
387
-
388
- .ctd-input-group {
389
- display: flex;
390
- align-items: center;
391
- gap: 1rem;
392
- margin-bottom: 2rem;
393
- }
394
-
395
- .ctd-input {
396
- flex: 1;
397
- background: rgb(248, 250, 252);
398
- border: 2px solid rgb(226, 232, 240);
399
- border-radius: 1.3rem;
400
- padding: 1.2rem 1.5rem;
401
- font-size: 1.5rem;
402
- font-weight: 800;
403
- color: rgb(15, 23, 42);
404
- outline: none;
405
- transition: all 0.3s;
406
- box-sizing: border-box;
407
- }
408
-
409
- :global(.theme-dark) .ctd-input {
410
- background: rgb(15, 23, 42);
411
- border-color: rgb(51, 65, 85);
412
- color: rgb(241, 245, 249);
413
- }
414
-
415
- .ctd-input:focus {
416
- border-color: var(--ctd-primary);
417
- background: white;
418
- box-shadow: 0 0 0 6px rgba(99, 102, 241, 0.1);
419
- }
420
-
421
- :global(.theme-dark) .ctd-input:focus {
422
- background: rgb(30, 41, 59);
423
- }
424
-
425
- .ctd-input-unit {
426
- font-size: 0.95rem;
427
- font-weight: 700;
428
- color: rgb(100, 116, 139);
429
- white-space: nowrap;
430
- }
431
-
432
- :global(.theme-dark) .ctd-input-unit {
433
- color: rgb(203, 213, 225);
434
- }
435
-
436
- .ctd-presets-label {
437
- font-size: 0.75rem;
438
- font-weight: 800;
439
- color: var(--ctd-primary);
440
- text-transform: uppercase;
441
- letter-spacing: 0.1em;
442
- margin-bottom: 1rem;
443
- }
444
-
445
- .ctd-presets {
446
- display: grid;
447
- grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
448
- gap: 0.8rem;
449
- }
450
-
451
- .ctd-preset {
452
- background: rgb(241, 245, 249);
453
- border: 2px solid rgb(226, 232, 240);
454
- border-radius: 1rem;
455
- padding: 1rem;
456
- font-size: 0.8rem;
457
- font-weight: 700;
458
- color: rgb(15, 23, 42);
459
- cursor: pointer;
460
- transition: all 0.2s;
461
- display: flex;
462
- flex-direction: column;
463
- align-items: center;
464
- gap: 0.5rem;
465
- }
466
-
467
- :global(.theme-dark) .ctd-preset {
468
- background: rgb(15, 23, 42);
469
- border-color: rgb(51, 65, 85);
470
- color: rgb(241, 245, 249);
471
- }
472
-
473
- .ctd-preset:hover {
474
- border-color: var(--ctd-primary);
475
- background: rgb(219, 234, 254);
476
- transform: translateY(-3px);
477
- box-shadow: 0 8px 16px rgba(99, 102, 241, 0.2);
478
- }
479
-
480
- :global(.theme-dark) .ctd-preset:hover {
481
- background: rgba(99, 102, 241, 0.1);
482
- }
483
-
484
- .ctd-preset.active {
485
- background: linear-gradient(135deg, var(--ctd-primary), var(--ctd-secondary));
486
- color: white;
487
- border-color: transparent;
488
- box-shadow: 0 8px 20px rgba(99, 102, 241, 0.3);
489
- }
490
-
491
- .ctd-speed-section {
492
- margin-bottom: 2.5rem;
493
- }
494
-
495
- .ctd-speed-section > label {
496
- display: block;
497
- font-size: 0.85rem;
498
- font-weight: 700;
499
- color: rgb(100, 116, 139);
500
- margin-bottom: 1rem;
501
- text-transform: uppercase;
502
- letter-spacing: 0.05em;
503
- }
504
-
505
- :global(.theme-dark) .ctd-speed-section > label {
506
- color: rgb(203, 213, 225);
507
- }
508
-
509
- .ctd-speed-buttons {
510
- display: grid;
511
- grid-template-columns: repeat(3, 1fr);
512
- gap: 1rem;
513
- }
514
-
515
- .ctd-speed-btn {
516
- background: rgb(241, 245, 249);
517
- border: 2px solid rgb(226, 232, 240);
518
- border-radius: 1.1rem;
519
- padding: 1rem;
520
- display: flex;
521
- flex-direction: column;
522
- align-items: center;
523
- gap: 0.4rem;
524
- cursor: pointer;
525
- transition: all 0.3s;
526
- }
527
-
528
- :global(.theme-dark) .ctd-speed-btn {
529
- background: rgb(15, 23, 42);
530
- border-color: rgb(51, 65, 85);
531
- }
532
-
533
- .ctd-speed-label {
534
- font-size: 0.9rem;
535
- font-weight: 800;
536
- color: rgb(15, 23, 42);
537
- }
538
-
539
- :global(.theme-dark) .ctd-speed-label {
540
- color: rgb(241, 245, 249);
541
- }
542
-
543
- .ctd-speed-value {
544
- font-size: 0.75rem;
545
- font-weight: 700;
546
- color: rgb(100, 116, 139);
547
- }
548
-
549
- :global(.theme-dark) .ctd-speed-value {
550
- color: rgb(203, 213, 225);
551
- }
552
-
553
- .ctd-speed-btn:hover {
554
- border-color: var(--ctd-primary);
555
- background: rgb(219, 234, 254);
556
- transform: translateY(-3px);
557
- box-shadow: 0 8px 16px rgba(99, 102, 241, 0.2);
558
- }
559
-
560
- :global(.theme-dark) .ctd-speed-btn:hover {
561
- background: rgba(99, 102, 241, 0.1);
562
- }
563
-
564
- .ctd-speed-btn.active {
565
- background: linear-gradient(135deg, var(--ctd-primary), var(--ctd-secondary));
566
- color: white;
567
- border-color: transparent;
568
- box-shadow: 0 8px 20px rgba(99, 102, 241, 0.3);
569
- }
570
-
571
- .ctd-speed-btn.active .ctd-speed-label {
572
- color: white;
573
- }
574
-
575
- .ctd-speed-btn.active .ctd-speed-value {
576
- color: rgba(255, 255, 255, 0.9);
577
- }
578
-
579
- .ctd-multiplier-section {
580
- margin-bottom: 2.5rem;
581
- }
582
-
583
- .ctd-multiplier-section > label {
584
- display: block;
585
- font-size: 0.85rem;
586
- font-weight: 700;
587
- color: rgb(100, 116, 139);
588
- margin-bottom: 1rem;
589
- text-transform: uppercase;
590
- letter-spacing: 0.05em;
591
- }
592
-
593
- :global(.theme-dark) .ctd-multiplier-section > label {
594
- color: rgb(203, 213, 225);
595
- }
596
-
597
- .ctd-multiplier-input {
598
- display: flex;
599
- gap: 0.6rem;
600
- flex-wrap: wrap;
601
- align-items: center;
602
- }
603
-
604
- .ctd-times-btn {
605
- background: rgb(241, 245, 249);
606
- border: 2px solid rgb(226, 232, 240);
607
- border-radius: 0.9rem;
608
- padding: 0.8rem 1.2rem;
609
- font-size: 0.8rem;
610
- font-weight: 700;
611
- color: rgb(15, 23, 42);
612
- cursor: pointer;
613
- transition: all 0.2s;
614
- }
615
-
616
- :global(.theme-dark) .ctd-times-btn {
617
- background: rgb(15, 23, 42);
618
- border-color: rgb(51, 65, 85);
619
- color: rgb(241, 245, 249);
620
- }
621
-
622
- .ctd-times-btn:hover {
623
- border-color: var(--ctd-primary);
624
- background: rgb(219, 234, 254);
625
- }
626
-
627
- :global(.theme-dark) .ctd-times-btn:hover {
628
- background: rgba(99, 102, 241, 0.1);
629
- }
630
-
631
- .ctd-times-btn.active {
632
- background: var(--ctd-primary);
633
- color: white;
634
- border-color: var(--ctd-primary);
635
- }
636
-
637
- .ctd-times-input {
638
- padding: 0.8rem 1rem;
639
- border: 2px solid rgb(226, 232, 240);
640
- border-radius: 0.9rem;
641
- font-size: 0.8rem;
642
- font-weight: 700;
643
- background: rgb(248, 250, 252);
644
- color: rgb(15, 23, 42);
645
- outline: none;
646
- width: 80px;
647
- transition: all 0.2s;
648
- box-sizing: border-box;
649
- }
650
-
651
- :global(.theme-dark) .ctd-times-input {
652
- background: rgb(15, 23, 42);
653
- border-color: rgb(51, 65, 85);
654
- color: rgb(241, 245, 249);
655
- }
656
-
657
- .ctd-times-input:focus {
658
- border-color: var(--ctd-primary);
659
- box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1);
660
- }
661
-
662
- .ctd-results {
663
- background: linear-gradient(135deg, rgb(240, 249, 255) 0%, rgb(240, 253, 244) 100%);
664
- border-radius: 1.5rem;
665
- padding: 2rem;
666
- margin-bottom: 2rem;
667
- display: grid;
668
- grid-template-columns: 1fr auto 1fr;
669
- gap: 2rem;
670
- align-items: center;
671
- }
672
-
673
- :global(.theme-dark) .ctd-results {
674
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.05), rgba(16, 185, 129, 0.05));
675
- }
676
-
677
- .ctd-result-single,
678
- .ctd-result-total {
679
- display: flex;
680
- flex-direction: column;
681
- align-items: center;
682
- gap: 0.5rem;
683
- }
684
-
685
- .ctd-result-label {
686
- font-size: 0.8rem;
687
- font-weight: 700;
688
- color: rgb(100, 116, 139);
689
- text-transform: uppercase;
690
- letter-spacing: 0.05em;
691
- }
692
-
693
- :global(.theme-dark) .ctd-result-label {
694
- color: rgb(203, 213, 225);
695
- }
696
-
697
- .ctd-result-time,
698
- .ctd-result-time-total {
699
- font-size: 2rem;
700
- font-weight: 900;
701
- color: var(--ctd-primary);
702
- line-height: 1;
703
- }
704
-
705
- .ctd-result-life,
706
- .ctd-result-life-total {
707
- font-size: 0.75rem;
708
- font-weight: 700;
709
- color: rgb(100, 116, 139);
710
- }
711
-
712
- :global(.theme-dark) .ctd-result-life,
713
- :global(.theme-dark) .ctd-result-life-total {
714
- color: rgb(203, 213, 225);
715
- }
716
-
717
- .ctd-divider {
718
- width: 2px;
719
- height: 100%;
720
- background: linear-gradient(180deg, transparent, rgb(203, 213, 225), transparent);
721
- }
722
-
723
- :global(.theme-dark) .ctd-divider {
724
- background: linear-gradient(180deg, transparent, rgba(203, 213, 225, 0.2), transparent);
725
- }
726
-
727
- .ctd-impact {
728
- display: grid;
729
- grid-template-columns: repeat(2, 1fr);
730
- gap: 1.5rem;
731
- margin-bottom: 2rem;
732
- }
733
-
734
- .ctd-impact-card {
735
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(255, 140, 0, 0.1));
736
- border: 2px solid rgba(99, 102, 241, 0.2);
737
- border-radius: 1.3rem;
738
- padding: 2rem;
739
- text-align: center;
740
- transition: all 0.3s;
741
- }
742
-
743
- :global(.theme-dark) .ctd-impact-card {
744
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.05), rgba(255, 140, 0, 0.05));
745
- border-color: rgba(99, 102, 241, 0.1);
746
- }
747
-
748
- .ctd-impact-card:hover {
749
- transform: translateY(-4px);
750
- box-shadow: 0 12px 24px rgba(99, 102, 241, 0.2);
751
- }
752
-
753
- .ctd-impact-number {
754
- font-size: 2.5rem;
755
- font-weight: 900;
756
- background: linear-gradient(135deg, var(--ctd-primary), var(--ctd-accent));
757
- background-clip: text;
758
- -webkit-background-clip: text;
759
- -webkit-text-fill-color: transparent;
760
- line-height: 1;
761
- margin-bottom: 0.5rem;
762
- }
763
-
764
- .ctd-impact-text {
765
- font-size: 0.85rem;
766
- font-weight: 700;
767
- color: rgb(100, 116, 139);
768
- }
769
-
770
- :global(.theme-dark) .ctd-impact-text {
771
- color: rgb(203, 213, 225);
772
- }
773
-
774
- .ctd-message {
775
- background: linear-gradient(135deg, rgb(254, 243, 199) 0%, rgb(254, 202, 202) 100%);
776
- border: 2px solid rgb(251, 191, 36);
777
- border-radius: 1.3rem;
778
- padding: 1.5rem;
779
- text-align: center;
780
- font-size: 1rem;
781
- font-weight: 700;
782
- color: rgb(146, 64, 14);
783
- line-height: 1.6;
784
- }
785
-
786
- :global(.theme-dark) .ctd-message {
787
- background: linear-gradient(135deg, rgba(254, 243, 199, 0.1), rgba(254, 202, 202, 0.1));
788
- border-color: rgba(251, 191, 36, 0.3);
789
- color: rgb(251, 191, 36);
790
- }
791
-
792
- @media (max-width: 768px) {
793
- .ctd-wrapper {
794
- padding: 1rem;
795
- min-height: auto;
796
- }
797
-
798
- .ctd-card {
799
- padding: 1.5rem;
800
- }
801
-
802
- .ctd-header {
803
- margin-bottom: 1.2rem;
804
- gap: 0.8rem;
805
- }
806
-
807
- .ctd-header h2 {
808
- font-size: 1.3rem;
809
- }
810
-
811
- .ctd-results {
812
- grid-template-columns: 1fr;
813
- gap: 0.8rem;
814
- padding: 1rem;
815
- }
816
-
817
- .ctd-divider {
818
- display: none;
819
- }
820
-
821
- .ctd-speed-buttons {
822
- grid-template-columns: 1fr;
823
- }
824
-
825
- .ctd-impact {
826
- grid-template-columns: 1fr;
827
- }
828
- }
829
- </style>