@jjlmoya/utils-diy 1.9.0 → 1.11.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
@@ -309,483 +309,3 @@ const t = (ui ?? {}) as StairCalculatorUI;
309
309
  updateCalculations();
310
310
  </script>
311
311
 
312
- <style>
313
- :root {
314
- --sc-primary: #6366f1;
315
- --sc-primary-dark: #4f46e5;
316
- --sc-primary-light: #818cf8;
317
- --sc-neutral: #1e293b;
318
- --sc-neutral-light: #64748b;
319
- --sc-border: #e2e8f0;
320
- --sc-bg-light: #f8fafc;
321
- --sc-bg-lighter: #f1f5f9;
322
- --sc-bg: #fff;
323
- }
324
-
325
- :global(.theme-dark) {
326
- --sc-primary: #818cf8;
327
- --sc-primary-dark: #6366f1;
328
- --sc-neutral: #f1f5f9;
329
- --sc-neutral-light: #9ca3af;
330
- --sc-border: rgba(255, 255, 255, 0.1);
331
- --sc-bg-light: rgba(255, 255, 255, 0.04);
332
- --sc-bg-lighter: rgba(255, 255, 255, 0.02);
333
- --sc-bg: rgba(255, 255, 255, 0.01);
334
- }
335
-
336
- .sc-root {
337
- width: 100%;
338
- max-width: 1100px;
339
- margin: 1.5rem auto;
340
- padding: 0 1rem;
341
- color: var(--sc-neutral);
342
- }
343
-
344
- .sc-card {
345
- background: var(--sc-bg);
346
- border-radius: 2rem;
347
- overflow: hidden;
348
- display: grid;
349
- grid-template-columns: 350px 1fr;
350
- box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
351
- border: 1px solid var(--sc-border);
352
- }
353
-
354
- .sc-sidebar {
355
- background: var(--sc-bg-light);
356
- padding: 1.5rem;
357
- border-right: 1px solid var(--sc-border);
358
- display: flex;
359
- flex-direction: column;
360
- gap: 1rem;
361
- }
362
-
363
- .sc-section h3 {
364
- font-size: 0.75rem;
365
- text-transform: uppercase;
366
- letter-spacing: 0.05em;
367
- color: var(--sc-primary);
368
- margin-bottom: 1rem;
369
- font-weight: 800;
370
- }
371
-
372
- .sc-main {
373
- padding: 1.5rem 2rem;
374
- display: flex;
375
- flex-direction: column;
376
- gap: 1.5rem;
377
- background: var(--sc-bg);
378
- }
379
-
380
- .sc-results-header {
381
- display: grid;
382
- grid-template-columns: repeat(4, 1fr);
383
- gap: 1rem;
384
- }
385
-
386
- .sc-stat-box {
387
- background: rgba(255, 255, 255, 0.5);
388
- padding: 0.75rem 0.5rem;
389
- border-radius: 1.25rem;
390
- text-align: center;
391
- border: 1px solid var(--sc-border);
392
- }
393
-
394
- :global(.theme-dark) .sc-stat-box {
395
- background: rgba(255, 255, 255, 0.04);
396
- }
397
-
398
- .sc-stat-label {
399
- display: block;
400
- font-size: 0.6rem;
401
- text-transform: uppercase;
402
- color: var(--sc-neutral-light);
403
- margin-bottom: 0.25rem;
404
- font-weight: 700;
405
- }
406
-
407
- .sc-stat-value {
408
- font-size: 1.5rem;
409
- font-weight: 800;
410
- color: var(--sc-neutral);
411
- }
412
-
413
- .sc-stat-unit {
414
- font-size: 0.75rem;
415
- color: var(--sc-neutral-light);
416
- }
417
-
418
- .sc-visualizer-container {
419
- background: var(--sc-bg-lighter);
420
- border-radius: 1.5rem;
421
- padding: 1.5rem;
422
- position: relative;
423
- min-height: 300px;
424
- display: flex;
425
- align-items: center;
426
- justify-content: center;
427
- border: 1px solid var(--sc-border);
428
- overflow: hidden;
429
- }
430
-
431
- #sc-stair-svg {
432
- width: 100%;
433
- height: 100%;
434
- max-height: 400px;
435
- color: var(--sc-neutral);
436
- }
437
-
438
- .sc-input-grid {
439
- display: grid;
440
- grid-template-columns: 1fr 1fr;
441
- gap: 0.75rem;
442
- }
443
-
444
- .sc-input-group {
445
- margin-bottom: 0.75rem;
446
- }
447
-
448
- .sc-input-group label {
449
- display: block;
450
- font-size: 0.8rem;
451
- font-weight: 700;
452
- color: var(--sc-neutral-light);
453
- margin-bottom: 0.4rem;
454
- }
455
-
456
- .sc-stepper {
457
- display: flex;
458
- align-items: center;
459
- background: rgba(255, 255, 255, 0.5);
460
- border-radius: 1.25rem;
461
- border: 2px solid var(--sc-border);
462
- transition: all 0.2s ease;
463
- padding: 3px;
464
- gap: 2px;
465
- width: 100%;
466
- box-sizing: border-box;
467
- }
468
-
469
- :global(.theme-dark) .sc-stepper {
470
- background: rgba(255, 255, 255, 0.04);
471
- }
472
-
473
- .sc-stepper:focus-within {
474
- border-color: var(--sc-primary);
475
- box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1);
476
- }
477
-
478
- .sc-step-btn {
479
- width: 44px;
480
- height: 44px;
481
- display: flex;
482
- align-items: center;
483
- justify-content: center;
484
- background: none;
485
- border: none;
486
- color: var(--sc-neutral-light);
487
- font-size: 1.6rem;
488
- font-weight: 800;
489
- cursor: pointer;
490
- border-radius: 0.85rem;
491
- transition: all 0.2s ease;
492
- flex-shrink: 0;
493
- }
494
-
495
- .sc-step-btn:hover {
496
- background: var(--sc-bg-lighter);
497
- color: var(--sc-primary);
498
- }
499
-
500
- .sc-stepper input {
501
- flex: 1;
502
- min-width: 0;
503
- background: none;
504
- border: none;
505
- color: var(--sc-neutral);
506
- text-align: center;
507
- font-size: 1.1rem;
508
- font-weight: 700;
509
- height: 44px;
510
- padding: 0;
511
- appearance: textfield;
512
- }
513
-
514
- .sc-stepper input::-webkit-outer-spin-button,
515
- .sc-stepper input::-webkit-inner-spin-button {
516
- -webkit-appearance: none;
517
- margin: 0;
518
- }
519
-
520
- .sc-select {
521
- width: 100%;
522
- padding: 0.8rem 2.8rem 0.8rem 1rem;
523
- border-radius: 1rem;
524
- border: 2px solid var(--sc-border);
525
- background: rgba(255, 255, 255, 0.5);
526
- font-weight: 600;
527
- font-size: 0.95rem;
528
- color: var(--sc-neutral);
529
- outline: none;
530
- transition: all 0.2s ease;
531
- appearance: none;
532
- -webkit-appearance: none;
533
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%236366f1' d='M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6l1.41-1.42Z'/%3E%3C/svg%3E");
534
- background-repeat: no-repeat;
535
- background-position: right 1rem center;
536
- cursor: pointer;
537
- }
538
-
539
- :global(.theme-dark) .sc-select {
540
- background-color: #0f172a;
541
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23818cf8' d='M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6l1.41-1.42Z'/%3E%3C/svg%3E");
542
- }
543
-
544
- .sc-select option {
545
- background: white;
546
- color: #1e293b;
547
- }
548
-
549
- :global(.theme-dark) .sc-select option {
550
- background: #1e293b;
551
- color: #f1f5f9;
552
- }
553
-
554
- .sc-optimize-btn {
555
- width: 100%;
556
- padding: 0.75rem;
557
- background: var(--sc-primary-dark);
558
- color: white;
559
- border: none;
560
- border-radius: 0.75rem;
561
- font-weight: 700;
562
- cursor: pointer;
563
- margin-top: 0.5rem;
564
- font-size: 0.85rem;
565
- }
566
-
567
- .sc-blondel-alert {
568
- padding: 1rem;
569
- border-radius: 1rem;
570
- font-weight: 700;
571
- display: flex;
572
- flex-direction: column;
573
- gap: 0.4rem;
574
- margin-top: auto;
575
- }
576
-
577
- .sc-blondel-title {
578
- font-size: 0.65rem;
579
- text-transform: uppercase;
580
- opacity: 0.8;
581
- }
582
-
583
- .sc-blondel-msg {
584
- font-size: 0.85rem;
585
- }
586
-
587
- .sc-blondel-alert.success {
588
- background: #dcfce7;
589
- color: #166534;
590
- border: 1px solid #bbf7d0;
591
- }
592
-
593
- .sc-blondel-alert.warning {
594
- background: #fef9c3;
595
- color: #854d0e;
596
- border: 1px solid #fef08a;
597
- }
598
-
599
- .sc-blondel-alert.error {
600
- background: #fee2e2;
601
- color: #991b1b;
602
- border: 1px solid #fecaca;
603
- }
604
-
605
- .sc-bottom-grid {
606
- display: grid;
607
- grid-template-columns: 1fr 300px;
608
- gap: 1.25rem;
609
- }
610
-
611
- .sc-table-card {
612
- background: rgba(255, 255, 255, 0.5);
613
- border-radius: 1.25rem;
614
- padding: 1.25rem;
615
- border: 1px solid var(--sc-border);
616
- }
617
-
618
- :global(.theme-dark) .sc-table-card {
619
- background: rgba(255, 255, 255, 0.03);
620
- }
621
-
622
- .sc-table-card h3 {
623
- font-size: 0.8rem;
624
- text-transform: uppercase;
625
- color: var(--sc-neutral-light);
626
- font-weight: 800;
627
- margin-bottom: 0.75rem;
628
- }
629
-
630
- .sc-table-wrapper {
631
- max-height: 220px;
632
- overflow-y: auto;
633
- }
634
-
635
- :global(.sc-table-wrapper table) {
636
- width: 100%;
637
- }
638
-
639
- :global(.sc-table-wrapper th) {
640
- text-align: left;
641
- font-size: 0.55rem;
642
- text-transform: uppercase;
643
- color: var(--sc-neutral-light);
644
- padding: 0.4rem 0.2rem;
645
- background: transparent;
646
- }
647
-
648
- :global(.sc-table-wrapper td) {
649
- padding: 0.6rem 0.2rem;
650
- border-bottom: 1px solid var(--sc-border);
651
- font-size: 0.8rem;
652
- color: var(--sc-neutral);
653
- }
654
-
655
- .sc-col-hl {
656
- color: var(--sc-primary);
657
- font-weight: 700;
658
- }
659
-
660
- .sc-materials-card {
661
- background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(99, 102, 241, 0.05) 100%);
662
- color: var(--sc-neutral);
663
- border-radius: 1.25rem;
664
- padding: 1.25rem;
665
- display: flex;
666
- flex-direction: column;
667
- gap: 0.75rem;
668
- border: 1px solid var(--sc-primary);
669
- }
670
-
671
- :global(.theme-dark) .sc-materials-card {
672
- background: rgba(129, 140, 248, 0.08);
673
- }
674
-
675
- .sc-materials-card h3 {
676
- font-size: 0.8rem;
677
- text-transform: uppercase;
678
- color: var(--sc-primary);
679
- font-weight: 800;
680
- margin-bottom: 0.5rem;
681
- }
682
-
683
- .sc-material-row {
684
- display: flex;
685
- justify-content: space-between;
686
- align-items: baseline;
687
- padding-bottom: 0.4rem;
688
- border-bottom: 1px solid var(--sc-border);
689
- }
690
-
691
- .sc-material-row span {
692
- font-size: 0.7rem;
693
- color: var(--sc-neutral-light);
694
- }
695
-
696
- .sc-material-row strong {
697
- font-size: 1.15rem;
698
- color: var(--sc-primary);
699
- }
700
-
701
- .sc-actions-row {
702
- display: grid;
703
- grid-template-columns: 1fr 1fr;
704
- gap: 0.5rem;
705
- margin-top: auto;
706
- }
707
-
708
- .sc-action-btn {
709
- padding: 0.75rem;
710
- border-radius: 0.75rem;
711
- font-weight: 800;
712
- font-size: 0.8rem;
713
- border: none;
714
- cursor: pointer;
715
- }
716
-
717
- .sc-btn-primary {
718
- background: var(--sc-primary-dark);
719
- color: white;
720
- }
721
-
722
- .sc-btn-secondary {
723
- background: rgba(255, 255, 255, 0.1);
724
- color: white;
725
- }
726
-
727
- @media (max-width: 1000px) {
728
- .sc-card {
729
- grid-template-columns: 1fr;
730
- border-radius: 1.5rem;
731
- }
732
-
733
- .sc-sidebar {
734
- border-right: none;
735
- border-bottom: 1px solid var(--sc-border);
736
- padding: 1.25rem;
737
- }
738
-
739
- .sc-main {
740
- padding: 1.25rem;
741
- }
742
- }
743
-
744
- @media (max-width: 768px) {
745
- .sc-root {
746
- margin: 1rem auto;
747
- padding: 0 0.75rem;
748
- }
749
-
750
- .sc-results-header {
751
- grid-template-columns: repeat(2, 1fr);
752
- gap: 0.5rem;
753
- }
754
-
755
- .sc-bottom-grid {
756
- grid-template-columns: 1fr;
757
- }
758
-
759
- .sc-stat-value {
760
- font-size: 1.25rem;
761
- }
762
-
763
- .sc-stat-box {
764
- padding: 0.5rem;
765
- }
766
-
767
- .sc-visualizer-container {
768
- min-height: 250px;
769
- padding: 1rem;
770
- }
771
- }
772
-
773
- @media (max-width: 480px) {
774
- .sc-results-header {
775
- gap: 0.4rem;
776
- }
777
-
778
- .sc-stat-box {
779
- padding: 0.4rem;
780
- border-radius: 1rem;
781
- }
782
-
783
- .sc-stat-value {
784
- font-size: 1.1rem;
785
- }
786
-
787
- .sc-material-row strong {
788
- font-size: 1rem;
789
- }
790
- }
791
- </style>