@jjlmoya/utils-diy 1.9.0 → 1.10.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 (28) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/tool/balusterCalculator/baluster-calculator.css +320 -0
  4. package/src/tool/balusterCalculator/component.astro +0 -322
  5. package/src/tool/clayCalculator/clay-shrinkage-calculator.css +530 -0
  6. package/src/tool/clayCalculator/component.astro +0 -532
  7. package/src/tool/concreteCalculator/component.astro +0 -705
  8. package/src/tool/concreteCalculator/concrete-mortar-calculator.css +703 -0
  9. package/src/tool/cutOptimizer/component.astro +0 -477
  10. package/src/tool/cutOptimizer/cut-optimizer.css +475 -0
  11. package/src/tool/drillCalculator/component.astro +0 -815
  12. package/src/tool/drillCalculator/drill-rpm-calculator.css +813 -0
  13. package/src/tool/drillSharpener/component.astro +0 -393
  14. package/src/tool/drillSharpener/drill-sharpening-master.css +391 -0
  15. package/src/tool/epoxyCalculator/component.astro +0 -571
  16. package/src/tool/epoxyCalculator/epoxy-resin-calculator.css +569 -0
  17. package/src/tool/furnitureFit/component.astro +0 -345
  18. package/src/tool/furnitureFit/furniture-fit-calculator.css +343 -0
  19. package/src/tool/mortarCalculator/component.astro +0 -620
  20. package/src/tool/mortarCalculator/lime-mortar-calculator.css +618 -0
  21. package/src/tool/passepartoutCalculator/component.astro +0 -518
  22. package/src/tool/passepartoutCalculator/passepartout-calculator.css +516 -0
  23. package/src/tool/stairCalculator/component.astro +0 -480
  24. package/src/tool/stairCalculator/stair-calculator.css +478 -0
  25. package/src/tool/thermalExpansionCalculator/component.astro +0 -490
  26. package/src/tool/thermalExpansionCalculator/thermal-expansion-calculator.css +488 -0
  27. package/src/tool/voltageDropCalculator/component.astro +0 -729
  28. package/src/tool/voltageDropCalculator/voltage-drop-calculator.css +727 -0
@@ -291,732 +291,3 @@ const SECTIONS = [
291
291
  document.querySelectorAll('[data-vd-root]').forEach(vdInit);
292
292
  </script>
293
293
 
294
- <style>
295
- .vd-root {
296
- max-width: 700px;
297
- margin: 0 auto;
298
- border-radius: 1.5rem;
299
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
300
- border: 1px solid #e2e8f0;
301
- overflow: hidden;
302
- }
303
-
304
- :global(.theme-dark) .vd-root {
305
- border-color: #1e293b;
306
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
307
- }
308
-
309
- .vd-hero {
310
- background: #0f172a;
311
- color: #fff;
312
- padding: 2rem;
313
- position: relative;
314
- overflow: hidden;
315
- }
316
-
317
- .vd-pulse {
318
- position: absolute;
319
- top: -125px;
320
- right: -125px;
321
- width: 350px;
322
- height: 350px;
323
- background: radial-gradient(circle, rgba(99, 102, 241, 0.25), transparent 70%);
324
- border-radius: 50%;
325
- pointer-events: none;
326
- transition: background 0.7s ease;
327
- }
328
-
329
- .vd-pulse[data-vd-pulse-status="acceptable"] {
330
- background: radial-gradient(circle, rgba(245, 158, 11, 0.2), transparent 70%);
331
- }
332
-
333
- .vd-pulse[data-vd-pulse-status="critical"] {
334
- background: radial-gradient(circle, rgba(239, 68, 68, 0.25), transparent 70%);
335
- }
336
-
337
- .vd-hero-body {
338
- position: relative;
339
- z-index: 1;
340
- display: flex;
341
- justify-content: space-between;
342
- align-items: flex-end;
343
- gap: 1.5rem;
344
- flex-wrap: wrap;
345
- }
346
-
347
- .vd-drop-label {
348
- font-size: 0.65rem;
349
- font-weight: 700;
350
- letter-spacing: 0.1em;
351
- text-transform: uppercase;
352
- color: #94a3b8;
353
- margin-bottom: 0.5rem;
354
- }
355
-
356
- .vd-drop-row {
357
- display: flex;
358
- align-items: baseline;
359
- gap: 0.5rem;
360
- }
361
-
362
- .vd-drop-val {
363
- font-size: 3.5rem;
364
- font-weight: 900;
365
- line-height: 1;
366
- letter-spacing: -0.02em;
367
- }
368
-
369
- .vd-drop-unit {
370
- font-size: 1.5rem;
371
- font-weight: 500;
372
- color: #64748b;
373
- }
374
-
375
- .vd-status-row {
376
- display: flex;
377
- align-items: center;
378
- gap: 0.75rem;
379
- margin-top: 1rem;
380
- }
381
-
382
- .vd-status-pill {
383
- display: flex;
384
- align-items: center;
385
- gap: 0.375rem;
386
- padding: 0.25rem 0.75rem;
387
- border-radius: 999px;
388
- font-size: 0.65rem;
389
- font-weight: 700;
390
- text-transform: uppercase;
391
- letter-spacing: 0.05em;
392
- background: rgba(34, 197, 94, 0.2);
393
- border: 1px solid rgba(34, 197, 94, 0.5);
394
- color: #4ade80;
395
- transition: all 0.3s ease;
396
- }
397
-
398
- .vd-status-pill[data-vd-status="acceptable"] {
399
- background: rgba(245, 158, 11, 0.2);
400
- border-color: rgba(245, 158, 11, 0.5);
401
- color: #fbbf24;
402
- }
403
-
404
- .vd-status-pill[data-vd-status="critical"] {
405
- background: rgba(239, 68, 68, 0.2);
406
- border-color: rgba(239, 68, 68, 0.5);
407
- color: #f87171;
408
- }
409
-
410
- .vd-status-dot {
411
- width: 6px;
412
- height: 6px;
413
- border-radius: 50%;
414
- background: currentcolor;
415
- }
416
-
417
- .vd-status-pill[data-vd-status="critical"] .vd-status-dot {
418
- animation: vd-blink 1s ease-in-out infinite;
419
- }
420
-
421
- @keyframes vd-blink {
422
- 0% {
423
- opacity: 1;
424
- }
425
- 50% {
426
- opacity: 0.2;
427
- }
428
- 100% {
429
- opacity: 1;
430
- }
431
- }
432
-
433
- .vd-pct-wrap {
434
- font-size: 0.875rem;
435
- font-weight: 500;
436
- color: #94a3b8;
437
- }
438
-
439
- .vd-eff-card {
440
- background: rgba(255, 255, 255, 0.05);
441
- border: 1px solid rgba(255, 255, 255, 0.1);
442
- border-radius: 1rem;
443
- padding: 1rem;
444
- min-width: 150px;
445
- }
446
-
447
- .vd-eff-label {
448
- font-size: 0.65rem;
449
- font-weight: 700;
450
- letter-spacing: 0.1em;
451
- text-transform: uppercase;
452
- color: #94a3b8;
453
- margin-bottom: 0.5rem;
454
- }
455
-
456
- .vd-eff-val-row {
457
- display: flex;
458
- align-items: baseline;
459
- gap: 0.25rem;
460
- margin-bottom: 0.5rem;
461
- }
462
-
463
- .vd-eff-val {
464
- font-size: 1.875rem;
465
- font-weight: 700;
466
- }
467
-
468
- .vd-eff-pct {
469
- font-size: 0.875rem;
470
- color: #94a3b8;
471
- }
472
-
473
- .vd-eff-bar-wrap {
474
- display: flex;
475
- height: 8px;
476
- background: rgba(51, 65, 85, 0.5);
477
- border-radius: 4px;
478
- overflow: hidden;
479
- }
480
-
481
- .vd-eff-bar-fill {
482
- height: 100%;
483
- background: #4ade80;
484
- transition: width 0.5s ease;
485
- }
486
-
487
- .vd-eff-bar-loss {
488
- height: 100%;
489
- flex: 1;
490
- background: rgba(239, 68, 68, 0.5);
491
- }
492
-
493
- .vd-body {
494
- padding: 1.5rem 2rem;
495
- background: #f8fafc;
496
- display: flex;
497
- flex-direction: column;
498
- gap: 1.5rem;
499
- }
500
-
501
- :global(.theme-dark) .vd-body {
502
- background: rgba(15, 23, 42, 0.5);
503
- }
504
-
505
- .vd-row-2 {
506
- display: grid;
507
- grid-template-columns: 1fr 1fr;
508
- gap: 1.5rem;
509
- }
510
-
511
- .vd-card {
512
- background: #fff;
513
- border: 1px solid #e2e8f0;
514
- border-radius: 1rem;
515
- padding: 1.25rem;
516
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
517
- }
518
-
519
- :global(.theme-dark) .vd-card {
520
- background: #1e293b;
521
- border-color: #334155;
522
- }
523
-
524
- .vd-field-label {
525
- display: block;
526
- font-size: 0.65rem;
527
- font-weight: 700;
528
- text-transform: uppercase;
529
- letter-spacing: 0.05em;
530
- color: #94a3b8;
531
- margin-bottom: 0.75rem;
532
- }
533
-
534
- .vd-toggle-wrap {
535
- position: relative;
536
- display: flex;
537
- background: #f1f5f9;
538
- padding: 4px;
539
- border-radius: 0.75rem;
540
- }
541
-
542
- :global(.theme-dark) .vd-toggle-wrap {
543
- background: rgba(15, 23, 42, 0.8);
544
- }
545
-
546
- .vd-volt-bg {
547
- position: absolute;
548
- top: 4px;
549
- left: 1%;
550
- width: 32.9%;
551
- height: calc(100% - 8px);
552
- background: #fff;
553
- border-radius: 0.5rem;
554
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
555
- transition: left 0.3s ease;
556
- pointer-events: none;
557
- }
558
-
559
- :global(.theme-dark) .vd-volt-bg {
560
- background: #334155;
561
- }
562
-
563
- .vd-volt-btn {
564
- flex: 1;
565
- position: relative;
566
- z-index: 1;
567
- padding: 0.375rem 0;
568
- font-size: 0.8125rem;
569
- font-weight: 700;
570
- border: none;
571
- background: transparent;
572
- color: #6b7280;
573
- cursor: pointer;
574
- border-radius: 0.5rem;
575
- transition: color 0.15s;
576
- }
577
-
578
- .vd-volt-btn.vd-active {
579
- color: #1e293b;
580
- }
581
-
582
- :global(.theme-dark) .vd-volt-btn {
583
- color: #94a3b8;
584
- }
585
-
586
- :global(.theme-dark) .vd-volt-btn.vd-active {
587
- color: #fff;
588
- }
589
-
590
- .vd-material-wrap {
591
- display: flex;
592
- gap: 1rem;
593
- }
594
-
595
- .vd-material-item {
596
- flex: 1;
597
- cursor: pointer;
598
- }
599
-
600
- .vd-material-input {
601
- position: absolute;
602
- width: 1px;
603
- height: 1px;
604
- padding: 0;
605
- margin: -1px;
606
- overflow: hidden;
607
- clip-path: inset(50%);
608
- white-space: nowrap;
609
- border-width: 0;
610
- }
611
-
612
- .vd-material-box {
613
- height: 2.5rem;
614
- display: flex;
615
- align-items: center;
616
- justify-content: center;
617
- gap: 0.5rem;
618
- border-radius: 0.75rem;
619
- border: 1px solid #e2e8f0;
620
- background: #f8fafc;
621
- font-size: 0.875rem;
622
- font-weight: 700;
623
- color: #64748b;
624
- transition: all 0.15s ease;
625
- }
626
-
627
- :global(.theme-dark) .vd-material-box {
628
- background: #0f172a;
629
- border-color: #334155;
630
- color: #94a3b8;
631
- }
632
-
633
- .vd-material-copper .vd-material-input:checked + .vd-material-box {
634
- border-color: #d97706;
635
- background: #fffbeb;
636
- color: #92400e;
637
- }
638
-
639
- .vd-material-alum .vd-material-input:checked + .vd-material-box {
640
- border-color: #64748b;
641
- background: #f1f5f9;
642
- color: #1e293b;
643
- }
644
-
645
- :global(.theme-dark) .vd-material-copper .vd-material-input:checked + .vd-material-box {
646
- background: rgba(180, 83, 9, 0.2);
647
- border-color: #d97706;
648
- color: #fbbf24;
649
- }
650
-
651
- :global(.theme-dark) .vd-material-alum .vd-material-input:checked + .vd-material-box {
652
- background: rgba(51, 65, 85, 0.8);
653
- border-color: #64748b;
654
- color: #fff;
655
- }
656
-
657
- .vd-wire-dot {
658
- width: 0.75rem;
659
- height: 0.75rem;
660
- border-radius: 50%;
661
- }
662
-
663
- .vd-wire-dot-copper {
664
- background: linear-gradient(to bottom right, #fbbf24, #d97706);
665
- }
666
-
667
- .vd-wire-dot-alum {
668
- background: linear-gradient(to bottom right, #cbd5e1, #64748b);
669
- }
670
-
671
- .vd-load-top {
672
- display: flex;
673
- align-items: center;
674
- justify-content: space-between;
675
- margin-bottom: 1rem;
676
- }
677
-
678
- .vd-load-top .vd-field-label {
679
- margin-bottom: 0;
680
- }
681
-
682
- .vd-mode-wrap {
683
- display: flex;
684
- background: #f1f5f9;
685
- padding: 4px;
686
- border-radius: 0.5rem;
687
- }
688
-
689
- :global(.theme-dark) .vd-mode-wrap {
690
- background: #0f172a;
691
- }
692
-
693
- .vd-mode-btn {
694
- padding: 0.25rem 0.75rem;
695
- font-size: 0.75rem;
696
- font-weight: 700;
697
- border: none;
698
- background: transparent;
699
- color: #6b7280;
700
- cursor: pointer;
701
- border-radius: 0.375rem;
702
- transition: all 0.15s;
703
- }
704
-
705
- .vd-mode-btn.vd-active {
706
- background: #fff;
707
- color: #1e293b;
708
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
709
- }
710
-
711
- :global(.theme-dark) .vd-mode-btn.vd-active {
712
- background: #334155;
713
- color: #fff;
714
- }
715
-
716
- .vd-load-input-row {
717
- display: flex;
718
- align-items: center;
719
- gap: 1rem;
720
- }
721
-
722
- .vd-load-input {
723
- width: 5rem;
724
- background: transparent;
725
- font-size: 1.5rem;
726
- font-weight: 900;
727
- text-align: right;
728
- border: none;
729
- border-bottom: 2px solid #e2e8f0;
730
- color: #1e293b;
731
- outline: none;
732
- padding: 0;
733
- transition: border-color 0.15s;
734
- }
735
-
736
- .vd-load-input:focus {
737
- border-color: #6366f1;
738
- }
739
-
740
- :global(.theme-dark) .vd-load-input {
741
- color: #fff;
742
- border-color: #334155;
743
- }
744
-
745
- :global(.theme-dark) .vd-load-input:focus {
746
- border-color: #6366f1;
747
- }
748
-
749
- .vd-load-unit {
750
- font-size: 0.875rem;
751
- font-weight: 700;
752
- color: #94a3b8;
753
- margin-top: 0.5rem;
754
- }
755
-
756
- .vd-len-top {
757
- display: flex;
758
- justify-content: space-between;
759
- align-items: center;
760
- margin-bottom: 1rem;
761
- }
762
-
763
- .vd-len-top .vd-field-label {
764
- margin-bottom: 0;
765
- }
766
-
767
- .vd-len-info {
768
- font-size: 0.875rem;
769
- font-weight: 700;
770
- color: #6366f1;
771
- }
772
-
773
- :global(.theme-dark) .vd-len-info {
774
- color: #a5b4fc;
775
- }
776
-
777
- .vd-slider-wrap {
778
- position: relative;
779
- height: 24px;
780
- display: flex;
781
- align-items: center;
782
- }
783
-
784
- .vd-slider-input {
785
- position: absolute;
786
- width: 100%;
787
- height: 100%;
788
- z-index: 2;
789
- opacity: 0;
790
- cursor: pointer;
791
- }
792
-
793
- .vd-slider-track {
794
- width: 100%;
795
- height: 8px;
796
- background: #f1f5f9;
797
- border-radius: 4px;
798
- overflow: hidden;
799
- }
800
-
801
- :global(.theme-dark) .vd-slider-track {
802
- background: #334155;
803
- }
804
-
805
- .vd-slider-fill {
806
- height: 100%;
807
- background: #6366f1;
808
- transition: width 0.075s;
809
- }
810
-
811
- .vd-slider-thumb {
812
- position: absolute;
813
- width: 24px;
814
- height: 24px;
815
- background: #fff;
816
- border: 2px solid #6366f1;
817
- border-radius: 50%;
818
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
819
- z-index: 1;
820
- pointer-events: none;
821
- transition: left 0.075s;
822
- transform: translateX(-50%);
823
- display: flex;
824
- align-items: center;
825
- justify-content: center;
826
- }
827
-
828
- :global(.theme-dark) .vd-slider-thumb {
829
- background: #1e293b;
830
- }
831
-
832
- .vd-slider-knob {
833
- width: 6px;
834
- height: 6px;
835
- background: #6366f1;
836
- border-radius: 50%;
837
- }
838
-
839
- .vd-section-top {
840
- display: flex;
841
- justify-content: space-between;
842
- align-items: center;
843
- margin-bottom: 1rem;
844
- }
845
-
846
- .vd-section-top .vd-field-label {
847
- margin-bottom: 0;
848
- }
849
-
850
- .vd-section-badge {
851
- font-size: 0.75rem;
852
- font-weight: 500;
853
- color: #64748b;
854
- background: #f1f5f9;
855
- padding: 0.25rem 0.5rem;
856
- border-radius: 0.375rem;
857
- }
858
-
859
- :global(.theme-dark) .vd-section-badge {
860
- background: #0f172a;
861
- color: #94a3b8;
862
- }
863
-
864
- .vd-gauge-outer {
865
- position: relative;
866
- }
867
-
868
- .vd-gauge-fade-l,
869
- .vd-gauge-fade-r {
870
- position: absolute;
871
- top: 0;
872
- bottom: 0;
873
- width: 3rem;
874
- z-index: 2;
875
- pointer-events: none;
876
- }
877
-
878
- .vd-gauge-fade-l {
879
- left: 0;
880
- background: linear-gradient(to right, #fff, transparent);
881
- }
882
-
883
- .vd-gauge-fade-r {
884
- right: 0;
885
- background: linear-gradient(to left, #fff, transparent);
886
- }
887
-
888
- :global(.theme-dark) .vd-gauge-fade-l {
889
- background: linear-gradient(to right, #1e293b, transparent);
890
- }
891
-
892
- :global(.theme-dark) .vd-gauge-fade-r {
893
- background: linear-gradient(to left, #1e293b, transparent);
894
- }
895
-
896
- .vd-gauge-scroll {
897
- display: flex;
898
- gap: 1rem;
899
- overflow-x: auto;
900
- padding: 1rem 3rem;
901
- scrollbar-width: none;
902
- cursor: grab;
903
- }
904
-
905
- .vd-gauge-scroll:active {
906
- cursor: grabbing;
907
- }
908
-
909
- .vd-gauge-scroll::-webkit-scrollbar {
910
- display: none;
911
- }
912
-
913
- .vd-gauge-item {
914
- flex-shrink: 0;
915
- cursor: pointer;
916
- }
917
-
918
- .vd-gauge-input {
919
- position: absolute;
920
- width: 1px;
921
- height: 1px;
922
- overflow: hidden;
923
- clip-path: inset(50%);
924
- white-space: nowrap;
925
- border-width: 0;
926
- }
927
-
928
- .vd-gauge-box {
929
- width: 4rem;
930
- height: 6rem;
931
- border-radius: 999px;
932
- background: #f8fafc;
933
- border: 2px solid #e2e8f0;
934
- display: flex;
935
- flex-direction: column;
936
- align-items: center;
937
- justify-content: flex-end;
938
- padding-bottom: 0.75rem;
939
- transition: all 0.2s ease;
940
- cursor: pointer;
941
- }
942
-
943
- :global(.theme-dark) .vd-gauge-box {
944
- background: #0f172a;
945
- border-color: #334155;
946
- }
947
-
948
- .vd-gauge-input:checked + .vd-gauge-box {
949
- border-color: #6366f1;
950
- background: #fff;
951
- box-shadow: 0 4px 16px rgba(99, 102, 241, 0.2);
952
- transform: translateY(-8px);
953
- }
954
-
955
- :global(.theme-dark) .vd-gauge-input:checked + .vd-gauge-box {
956
- background: #1e293b;
957
- border-color: #6366f1;
958
- }
959
-
960
- .vd-wire-circle {
961
- margin-top: auto;
962
- margin-bottom: 0.5rem;
963
- border-radius: 50%;
964
- background: linear-gradient(to bottom right, #fbbf24, #d97706);
965
- transition: background 0.3s ease;
966
- }
967
-
968
- .vd-root[data-vd-material="aluminum"] .vd-wire-circle {
969
- background: linear-gradient(to bottom right, #cbd5e1, #64748b);
970
- }
971
-
972
- .vd-gauge-val {
973
- font-size: 0.875rem;
974
- font-weight: 700;
975
- color: #64748b;
976
- }
977
-
978
- .vd-gauge-input:checked + .vd-gauge-box .vd-gauge-val {
979
- color: #6366f1;
980
- }
981
-
982
- :global(.theme-dark) .vd-gauge-val {
983
- color: #94a3b8;
984
- }
985
-
986
- :global(.theme-dark) .vd-gauge-input:checked + .vd-gauge-box .vd-gauge-val {
987
- color: #a5b4fc;
988
- }
989
-
990
- .vd-gauge-unit {
991
- font-size: 0.625rem;
992
- color: #94a3b8;
993
- }
994
-
995
- @media (max-width: 640px) {
996
- .vd-hero {
997
- padding: 1.5rem;
998
- }
999
-
1000
- .vd-hero-body {
1001
- flex-direction: column;
1002
- align-items: flex-start;
1003
- }
1004
-
1005
- .vd-eff-card {
1006
- width: 100%;
1007
- min-width: unset;
1008
- }
1009
-
1010
- .vd-body {
1011
- padding: 1rem;
1012
- }
1013
-
1014
- .vd-row-2 {
1015
- grid-template-columns: 1fr;
1016
- }
1017
-
1018
- .vd-drop-val {
1019
- font-size: 2.5rem;
1020
- }
1021
- }
1022
- </style>