@jjlmoya/utils-diy 1.8.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 (56) hide show
  1. package/package.json +7 -4
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/entries.ts +31 -0
  4. package/src/tool/balusterCalculator/baluster-calculator.css +320 -0
  5. package/src/tool/balusterCalculator/component.astro +0 -322
  6. package/src/tool/balusterCalculator/entry.ts +29 -0
  7. package/src/tool/balusterCalculator/index.ts +2 -31
  8. package/src/tool/clayCalculator/clay-shrinkage-calculator.css +530 -0
  9. package/src/tool/clayCalculator/component.astro +0 -532
  10. package/src/tool/clayCalculator/entry.ts +29 -0
  11. package/src/tool/clayCalculator/index.ts +2 -31
  12. package/src/tool/concreteCalculator/component.astro +0 -705
  13. package/src/tool/concreteCalculator/concrete-mortar-calculator.css +703 -0
  14. package/src/tool/concreteCalculator/entry.ts +25 -0
  15. package/src/tool/concreteCalculator/index.ts +2 -26
  16. package/src/tool/cutOptimizer/component.astro +0 -477
  17. package/src/tool/cutOptimizer/cut-optimizer.css +475 -0
  18. package/src/tool/cutOptimizer/entry.ts +25 -0
  19. package/src/tool/cutOptimizer/index.ts +2 -26
  20. package/src/tool/drillCalculator/component.astro +0 -815
  21. package/src/tool/drillCalculator/drill-rpm-calculator.css +813 -0
  22. package/src/tool/drillCalculator/entry.ts +25 -0
  23. package/src/tool/drillCalculator/index.ts +2 -26
  24. package/src/tool/drillSharpener/component.astro +0 -393
  25. package/src/tool/drillSharpener/drill-sharpening-master.css +391 -0
  26. package/src/tool/drillSharpener/entry.ts +25 -0
  27. package/src/tool/drillSharpener/index.ts +2 -27
  28. package/src/tool/epoxyCalculator/component.astro +0 -571
  29. package/src/tool/epoxyCalculator/entry.ts +29 -0
  30. package/src/tool/epoxyCalculator/epoxy-resin-calculator.css +569 -0
  31. package/src/tool/epoxyCalculator/index.ts +2 -31
  32. package/src/tool/furnitureFit/component.astro +0 -345
  33. package/src/tool/furnitureFit/entry.ts +25 -0
  34. package/src/tool/furnitureFit/furniture-fit-calculator.css +343 -0
  35. package/src/tool/furnitureFit/index.ts +2 -26
  36. package/src/tool/mortarCalculator/component.astro +0 -620
  37. package/src/tool/mortarCalculator/entry.ts +25 -0
  38. package/src/tool/mortarCalculator/index.ts +2 -26
  39. package/src/tool/mortarCalculator/lime-mortar-calculator.css +618 -0
  40. package/src/tool/passepartoutCalculator/component.astro +0 -518
  41. package/src/tool/passepartoutCalculator/entry.ts +25 -0
  42. package/src/tool/passepartoutCalculator/index.ts +2 -26
  43. package/src/tool/passepartoutCalculator/passepartout-calculator.css +516 -0
  44. package/src/tool/stairCalculator/component.astro +0 -480
  45. package/src/tool/stairCalculator/entry.ts +25 -0
  46. package/src/tool/stairCalculator/index.ts +2 -27
  47. package/src/tool/stairCalculator/stair-calculator.css +478 -0
  48. package/src/tool/thermalExpansionCalculator/component.astro +0 -490
  49. package/src/tool/thermalExpansionCalculator/entry.ts +25 -0
  50. package/src/tool/thermalExpansionCalculator/index.ts +2 -26
  51. package/src/tool/thermalExpansionCalculator/thermal-expansion-calculator.css +488 -0
  52. package/src/tool/voltageDropCalculator/component.astro +0 -729
  53. package/src/tool/voltageDropCalculator/entry.ts +25 -0
  54. package/src/tool/voltageDropCalculator/index.ts +2 -26
  55. package/src/tool/voltageDropCalculator/voltage-drop-calculator.css +727 -0
  56. package/src/tools.ts +1 -1
@@ -1,29 +1,5 @@
1
- import type { DiyToolEntry, ToolDefinition } from '../../types';
2
- import type { FurnitureFitUI } from './ui';
3
-
4
-
5
- export const furnitureFit: DiyToolEntry<FurnitureFitUI> = {
6
- id: 'furniture-fit-calculator',
7
- icons: { bg: 'mdi:sofa', fg: 'mdi:ruler-square' },
8
- i18n: {
9
- de: () => import('./i18n/de').then((m) => m.content),
10
- en: () => import('./i18n/en').then((m) => m.content),
11
- es: () => import('./i18n/es').then((m) => m.content),
12
- fr: () => import('./i18n/fr').then((m) => m.content),
13
- id: () => import('./i18n/id').then((m) => m.content),
14
- it: () => import('./i18n/it').then((m) => m.content),
15
- ja: () => import('./i18n/ja').then((m) => m.content),
16
- ko: () => import('./i18n/ko').then((m) => m.content),
17
- nl: () => import('./i18n/nl').then((m) => m.content),
18
- pl: () => import('./i18n/pl').then((m) => m.content),
19
- pt: () => import('./i18n/pt').then((m) => m.content),
20
- ru: () => import('./i18n/ru').then((m) => m.content),
21
- sv: () => import('./i18n/sv').then((m) => m.content),
22
- tr: () => import('./i18n/tr').then((m) => m.content),
23
- zh: () => import('./i18n/zh').then((m) => m.content),
24
- },
25
- };
26
-
1
+ import { furnitureFit } from './entry';
2
+ export * from './entry';
27
3
  export const FURNITURE_FIT_TOOL: ToolDefinition = {
28
4
  entry: furnitureFit,
29
5
  Component: () => import('./component.astro'),
@@ -305,626 +305,6 @@ const t = (ui ?? {}) as MortarCalculatorUI;
305
305
  </div>
306
306
  </div>
307
307
 
308
- <style>
309
- .mc-container {
310
- position: relative;
311
- }
312
-
313
- .mc-canvas {
314
- max-width: 1400px;
315
- margin: 0 auto;
316
- display: grid;
317
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
318
- gap: 1.5rem;
319
- }
320
-
321
- @media (min-width: 1024px) {
322
- .mc-canvas {
323
- grid-template-columns: 1fr 1.2fr 1fr;
324
- }
325
- }
326
-
327
- .mc-panel {
328
- background: rgba(255, 255, 255, 0.8);
329
- backdrop-filter: blur(10px);
330
- border: 2px solid #e7e5e4;
331
- border-radius: 1.5rem;
332
- padding: 2rem;
333
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
334
- transition: transform 0.3s, box-shadow 0.3s;
335
- }
336
-
337
- :global(.theme-dark) .mc-panel {
338
- background: rgba(26, 26, 26, 0.8);
339
- border-color: rgba(255, 255, 255, 0.1);
340
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
341
- }
342
-
343
- .mc-panel:hover {
344
- transform: translateY(-4px);
345
- box-shadow: 0 15px 50px rgba(0, 0, 0, 0.1);
346
- }
347
-
348
- .mc-panel-title {
349
- font-size: 1.5rem;
350
- font-weight: 700;
351
- color: #292524;
352
- margin-bottom: 1.5rem;
353
- text-align: center;
354
- }
355
-
356
- :global(.theme-dark) .mc-panel-title {
357
- color: #f5f1e8;
358
- }
359
-
360
- .mc-column-svg {
361
- width: 100%;
362
- max-width: 250px;
363
- margin: 0 auto;
364
- display: block;
365
- }
366
-
367
- .mc-column-section {
368
- cursor: pointer;
369
- transition: all 0.3s ease;
370
- }
371
-
372
- .mc-column-section:hover {
373
- filter: brightness(1.1);
374
- }
375
-
376
- .mc-column-section.mc-active {
377
- filter: drop-shadow(0 0 10px rgba(193, 105, 79, 0.6));
378
- }
379
-
380
- .mc-column-label {
381
- font-size: 14px;
382
- font-weight: 700;
383
- text-anchor: middle;
384
- fill: #292524;
385
- pointer-events: none;
386
- }
387
-
388
- :global(.theme-dark) .mc-column-label {
389
- fill: #f5f1e8;
390
- }
391
-
392
- .mc-column-sublabel {
393
- font-size: 10px;
394
- text-anchor: middle;
395
- fill: #78716c;
396
- pointer-events: none;
397
- }
398
-
399
- .mc-phase-info {
400
- margin-top: 2rem;
401
- padding: 1.5rem;
402
- background: rgba(245, 241, 232, 0.5);
403
- border-radius: 1rem;
404
- border: 1px solid #e7e5e4;
405
- }
406
-
407
- :global(.theme-dark) .mc-phase-info {
408
- background: rgba(40, 35, 30, 0.5);
409
- border-color: rgba(255, 255, 255, 0.05);
410
- }
411
-
412
- .mc-phase-info h3 {
413
- font-size: 1.25rem;
414
- color: #c1694f;
415
- margin-bottom: 0.5rem;
416
- font-weight: 700;
417
- }
418
-
419
- .mc-phase-info p {
420
- font-size: 0.875rem;
421
- color: #57534e;
422
- line-height: 1.6;
423
- }
424
-
425
- :global(.theme-dark) .mc-phase-info p {
426
- color: #a8a29e;
427
- }
428
-
429
- .mc-material-selector {
430
- display: flex;
431
- gap: 1rem;
432
- margin-bottom: 1.5rem;
433
- }
434
-
435
- .mc-material-btn {
436
- flex: 1;
437
- display: flex;
438
- align-items: center;
439
- justify-content: center;
440
- gap: 0.5rem;
441
- padding: 1rem;
442
- background: rgba(245, 241, 232, 0.5);
443
- border: 2px solid #e7e5e4;
444
- border-radius: 0.75rem;
445
- font-weight: 600;
446
- color: #57534e;
447
- cursor: pointer;
448
- transition: all 0.3s;
449
- }
450
-
451
- :global(.theme-dark) .mc-material-btn {
452
- background: rgba(40, 35, 30, 0.5);
453
- border-color: rgba(255, 255, 255, 0.1);
454
- color: #a8a29e;
455
- }
456
-
457
- .mc-material-btn.mc-active {
458
- background: #c1694f;
459
- border-color: #c1694f;
460
- color: #fff;
461
- }
462
-
463
- .mc-btn-icon {
464
- width: 1.25rem;
465
- height: 1.25rem;
466
- }
467
-
468
- .mc-cal-toggle {
469
- margin-bottom: 1.5rem;
470
- padding: 0.75rem 1rem;
471
- background: rgba(245, 241, 232, 0.5);
472
- border-radius: 0.75rem;
473
- border: 1px solid #e7e5e4;
474
- }
475
-
476
- :global(.theme-dark) .mc-cal-toggle {
477
- background: rgba(40, 35, 30, 0.5);
478
- border-color: rgba(255, 255, 255, 0.1);
479
- }
480
-
481
- .mc-toggle-label {
482
- display: flex;
483
- align-items: center;
484
- gap: 0.75rem;
485
- cursor: pointer;
486
- }
487
-
488
- .mc-toggle-label input[type="checkbox"] {
489
- width: 2.5rem;
490
- height: 1.25rem;
491
- appearance: none;
492
- background: #e7e5e4;
493
- border-radius: 9999px;
494
- position: relative;
495
- cursor: pointer;
496
- transition: background 0.3s;
497
- flex-shrink: 0;
498
- }
499
-
500
- .mc-toggle-label input[type="checkbox"]:checked {
501
- background: #c1694f;
502
- }
503
-
504
- .mc-toggle-label input[type="checkbox"]::after {
505
- content: '';
506
- position: absolute;
507
- width: 1rem;
508
- height: 1rem;
509
- background: #fff;
510
- border-radius: 50%;
511
- top: 0.125rem;
512
- left: 0.125rem;
513
- transition: left 0.3s;
514
- }
515
-
516
- .mc-toggle-label input[type="checkbox"]:checked::after {
517
- left: 1.375rem;
518
- }
519
-
520
- .mc-toggle-text {
521
- font-size: 0.875rem;
522
- color: #57534e;
523
- display: flex;
524
- flex-direction: column;
525
- gap: 0.125rem;
526
- }
527
-
528
- :global(.theme-dark) .mc-toggle-text {
529
- color: #a8a29e;
530
- }
531
-
532
- .mc-type-pasta {
533
- font-weight: 600;
534
- color: #292524;
535
- }
536
-
537
- :global(.theme-dark) .mc-type-pasta {
538
- color: #f5f1e8;
539
- }
540
-
541
- .mc-type-polvo {
542
- font-size: 0.8rem;
543
- opacity: 0.7;
544
- }
545
-
546
- .mc-bodegon-svg {
547
- width: 100%;
548
- height: 200px;
549
- border: 1px solid #e7e5e4;
550
- border-radius: 0.75rem;
551
- background: rgba(245, 241, 232, 0.3);
552
- margin-bottom: 1rem;
553
- }
554
-
555
- :global(.theme-dark) .mc-bodegon-svg {
556
- border-color: rgba(255, 255, 255, 0.1);
557
- background: rgba(10, 10, 10, 0.3);
558
- }
559
-
560
- .mc-slider-container {
561
- margin-bottom: 0.75rem;
562
- }
563
-
564
- .mc-slider {
565
- width: 100%;
566
- accent-color: #c1694f;
567
- }
568
-
569
- .mc-ruler-marks {
570
- display: flex;
571
- justify-content: space-between;
572
- font-size: 0.75rem;
573
- color: #78716c;
574
- margin-top: 0.25rem;
575
- }
576
-
577
- .mc-quantity-display {
578
- display: flex;
579
- align-items: center;
580
- gap: 0.5rem;
581
- margin-bottom: 1.5rem;
582
- font-size: 0.875rem;
583
- color: #57534e;
584
- }
585
-
586
- :global(.theme-dark) .mc-quantity-display {
587
- color: #a8a29e;
588
- }
589
-
590
- .mc-quantity-value {
591
- font-size: 1.5rem;
592
- font-weight: 700;
593
- color: #c1694f;
594
- }
595
-
596
- .mc-quantity-unit {
597
- font-weight: 600;
598
- color: #78716c;
599
- }
600
-
601
- .mc-complementary {
602
- padding: 1rem;
603
- background: rgba(245, 241, 232, 0.5);
604
- border-radius: 0.75rem;
605
- border: 1px solid #e7e5e4;
606
- }
607
-
608
- :global(.theme-dark) .mc-complementary {
609
- background: rgba(40, 35, 30, 0.5);
610
- border-color: rgba(255, 255, 255, 0.1);
611
- }
612
-
613
- .mc-complementary-header {
614
- display: flex;
615
- align-items: center;
616
- gap: 0.5rem;
617
- font-size: 0.875rem;
618
- font-weight: 600;
619
- color: #78716c;
620
- margin-bottom: 0.75rem;
621
- }
622
-
623
- :global(.theme-dark) .mc-complementary-header {
624
- color: #a8a29e;
625
- }
626
-
627
- .mc-arrow-icon {
628
- width: 1rem;
629
- height: 1rem;
630
- color: #c1694f;
631
- }
632
-
633
- .mc-complementary-content {
634
- display: flex;
635
- flex-direction: column;
636
- gap: 0.5rem;
637
- }
638
-
639
- .mc-complementary-item {
640
- display: flex;
641
- align-items: center;
642
- gap: 0.5rem;
643
- }
644
-
645
- .mc-comp-label {
646
- font-weight: 600;
647
- color: #292524;
648
- min-width: 4rem;
649
- }
650
-
651
- :global(.theme-dark) .mc-comp-label {
652
- color: #f5f1e8;
653
- }
654
-
655
- .mc-comp-value {
656
- font-size: 1.25rem;
657
- font-weight: 700;
658
- color: #c1694f;
659
- }
660
-
661
- .mc-comp-unit {
662
- color: #78716c;
663
- }
664
-
665
- .mc-ratio-row {
666
- font-size: 0.875rem;
667
- color: #78716c;
668
- }
669
-
670
- :global(.theme-dark) .mc-ratio-row {
671
- color: #a8a29e;
672
- }
673
-
674
- .mc-ratio-value {
675
- font-weight: 700;
676
- color: #292524;
677
- }
678
-
679
- :global(.theme-dark) .mc-ratio-value {
680
- color: #f5f1e8;
681
- }
682
-
683
- .mc-wall-svg {
684
- width: 100%;
685
- height: 300px;
686
- border-radius: 1rem;
687
- border: 1px solid #e7e5e4;
688
- background: #fafaf9;
689
- margin-bottom: 1.5rem;
690
- }
691
-
692
- :global(.theme-dark) .mc-wall-svg {
693
- border-color: rgba(255, 255, 255, 0.1);
694
- background: #0a0a0a;
695
- }
696
-
697
- #mc-mortar-coverage,
698
- #mc-mortar-texture {
699
- transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
700
- }
701
-
702
- .mc-coverage-display {
703
- display: flex;
704
- align-items: center;
705
- gap: 0.5rem;
706
- margin-bottom: 1.5rem;
707
- }
708
-
709
- .mc-coverage-label {
710
- font-size: 0.875rem;
711
- color: #78716c;
712
- font-weight: 600;
713
- }
714
-
715
- :global(.theme-dark) .mc-coverage-label {
716
- color: #a8a29e;
717
- }
718
-
719
- .mc-coverage-value {
720
- font-size: 2rem;
721
- font-weight: 900;
722
- color: #c1694f;
723
- line-height: 1;
724
- }
725
-
726
- .mc-coverage-unit {
727
- font-size: 1rem;
728
- font-weight: 600;
729
- color: #78716c;
730
- }
731
-
732
- .mc-technical-details {
733
- display: flex;
734
- flex-direction: column;
735
- gap: 0.5rem;
736
- }
737
-
738
- .mc-detail-row {
739
- display: flex;
740
- justify-content: space-between;
741
- align-items: center;
742
- padding: 0.5rem 0;
743
- border-bottom: 1px solid #e7e5e4;
744
- font-size: 0.875rem;
745
- }
746
-
747
- :global(.theme-dark) .mc-detail-row {
748
- border-bottom-color: rgba(255, 255, 255, 0.05);
749
- }
750
-
751
- .mc-detail-row:last-child {
752
- border-bottom: none;
753
- }
754
-
755
- .mc-detail-label {
756
- color: #78716c;
757
- font-weight: 500;
758
- }
759
-
760
- :global(.theme-dark) .mc-detail-label {
761
- color: #a8a29e;
762
- }
763
-
764
- .mc-detail-value {
765
- font-weight: 700;
766
- color: #292524;
767
- }
768
-
769
- :global(.theme-dark) .mc-detail-value {
770
- color: #f5f1e8;
771
- }
772
-
773
- .mc-granulometry-section {
774
- max-width: 1400px;
775
- margin: 4rem auto 2rem;
776
- }
777
-
778
- .mc-section-title {
779
- font-size: 2rem;
780
- font-weight: 700;
781
- text-align: center;
782
- color: #292524;
783
- margin-bottom: 2.5rem;
784
- position: relative;
785
- }
786
-
787
- :global(.theme-dark) .mc-section-title {
788
- color: #f5f1e8;
789
- }
790
-
791
- .mc-section-title::after {
792
- content: '';
793
- display: block;
794
- width: 100px;
795
- height: 3px;
796
- background: linear-gradient(90deg, transparent, #c1694f, transparent);
797
- margin: 0.75rem auto 0;
798
- }
799
-
800
- .mc-granulometry-cards {
801
- display: grid;
802
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
803
- gap: 2rem;
804
- margin-bottom: 3rem;
805
- }
806
-
807
- .mc-grain-card {
808
- background: #fafaf9;
809
- border: 2px solid #e7e5e4;
810
- border-radius: 1rem;
811
- padding: 2rem;
812
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
813
- opacity: 0.6;
814
- transform: scale(0.98);
815
- }
816
-
817
- :global(.theme-dark) .mc-grain-card {
818
- background: #1c1917;
819
- border-color: rgba(255, 255, 255, 0.1);
820
- }
821
-
822
- .mc-grain-card:hover {
823
- transform: scale(1);
824
- opacity: 0.8;
825
- }
826
-
827
- .mc-grain-card.mc-active {
828
- opacity: 1;
829
- transform: scale(1.02);
830
- border-color: #c1694f;
831
- box-shadow: 0 8px 32px rgba(193, 105, 79, 0.2);
832
- background: #fff;
833
- }
834
-
835
- :global(.theme-dark) .mc-grain-card.mc-active {
836
- background: #292524;
837
- border-color: #c1694f;
838
- box-shadow: 0 8px 32px rgba(193, 105, 79, 0.3);
839
- }
840
-
841
- .mc-grain-header {
842
- text-align: center;
843
- margin-bottom: 1.5rem;
844
- }
845
-
846
- .mc-grain-title {
847
- font-size: 1.25rem;
848
- font-weight: 700;
849
- color: #292524;
850
- margin: 0 0 0.5rem;
851
- }
852
-
853
- :global(.theme-dark) .mc-grain-title {
854
- color: #f5f1e8;
855
- }
856
-
857
- .mc-grain-subtitle {
858
- font-size: 0.875rem;
859
- color: #78716c;
860
- font-weight: 500;
861
- }
862
-
863
- :global(.theme-dark) .mc-grain-subtitle {
864
- color: #a8a29e;
865
- }
866
-
867
- .mc-grain-visual {
868
- background: #f5f5f4;
869
- border-radius: 0.75rem;
870
- padding: 1rem;
871
- margin-bottom: 1.5rem;
872
- border: 1px solid #e7e5e4;
873
- }
874
-
875
- :global(.theme-dark) .mc-grain-visual {
876
- background: #0a0a0a;
877
- border-color: rgba(255, 255, 255, 0.05);
878
- }
879
-
880
- .mc-grain-svg {
881
- width: 100%;
882
- height: auto;
883
- display: block;
884
- }
885
-
886
- .mc-grain-specs {
887
- display: flex;
888
- flex-direction: column;
889
- gap: 0.75rem;
890
- }
891
-
892
- .mc-spec-item {
893
- display: flex;
894
- justify-content: space-between;
895
- align-items: center;
896
- padding: 0.5rem 0;
897
- border-bottom: 1px solid #e7e5e4;
898
- }
899
-
900
- :global(.theme-dark) .mc-spec-item {
901
- border-bottom-color: rgba(255, 255, 255, 0.05);
902
- }
903
-
904
- .mc-spec-item:last-child {
905
- border-bottom: none;
906
- }
907
-
908
- .mc-spec-label {
909
- font-size: 0.875rem;
910
- color: #78716c;
911
- font-weight: 500;
912
- }
913
-
914
- :global(.theme-dark) .mc-spec-label {
915
- color: #a8a29e;
916
- }
917
-
918
- .mc-spec-value {
919
- font-size: 0.875rem;
920
- color: #292524;
921
- font-weight: 600;
922
- }
923
-
924
- :global(.theme-dark) .mc-spec-value {
925
- color: #f5f1e8;
926
- }
927
- </style>
928
308
 
929
309
  <script>
930
310
  type McPhase = 'trullissatio' | 'arenato' | 'marmorato';
@@ -0,0 +1,25 @@
1
+ import type { DiyToolEntry } from '../../types';
2
+ import type { MortarCalculatorUI } from './ui';
3
+
4
+
5
+ export const mortarCalculator: DiyToolEntry<MortarCalculatorUI> = {
6
+ id: 'mortar-calculator',
7
+ icons: { bg: 'mdi:wall', fg: 'mdi:bucket-outline' },
8
+ i18n: {
9
+ de: () => import('./i18n/de').then((m) => m.content),
10
+ en: () => import('./i18n/en').then((m) => m.content),
11
+ es: () => import('./i18n/es').then((m) => m.content),
12
+ fr: () => import('./i18n/fr').then((m) => m.content),
13
+ id: () => import('./i18n/id').then((m) => m.content),
14
+ it: () => import('./i18n/it').then((m) => m.content),
15
+ ja: () => import('./i18n/ja').then((m) => m.content),
16
+ ko: () => import('./i18n/ko').then((m) => m.content),
17
+ nl: () => import('./i18n/nl').then((m) => m.content),
18
+ pl: () => import('./i18n/pl').then((m) => m.content),
19
+ pt: () => import('./i18n/pt').then((m) => m.content),
20
+ ru: () => import('./i18n/ru').then((m) => m.content),
21
+ sv: () => import('./i18n/sv').then((m) => m.content),
22
+ tr: () => import('./i18n/tr').then((m) => m.content),
23
+ zh: () => import('./i18n/zh').then((m) => m.content),
24
+ },
25
+ };
@@ -1,29 +1,5 @@
1
- import type { DiyToolEntry, ToolDefinition } from '../../types';
2
- import type { MortarCalculatorUI } from './ui';
3
-
4
-
5
- export const mortarCalculator: DiyToolEntry<MortarCalculatorUI> = {
6
- id: 'mortar-calculator',
7
- icons: { bg: 'mdi:wall', fg: 'mdi:bucket-outline' },
8
- i18n: {
9
- de: () => import('./i18n/de').then((m) => m.content),
10
- en: () => import('./i18n/en').then((m) => m.content),
11
- es: () => import('./i18n/es').then((m) => m.content),
12
- fr: () => import('./i18n/fr').then((m) => m.content),
13
- id: () => import('./i18n/id').then((m) => m.content),
14
- it: () => import('./i18n/it').then((m) => m.content),
15
- ja: () => import('./i18n/ja').then((m) => m.content),
16
- ko: () => import('./i18n/ko').then((m) => m.content),
17
- nl: () => import('./i18n/nl').then((m) => m.content),
18
- pl: () => import('./i18n/pl').then((m) => m.content),
19
- pt: () => import('./i18n/pt').then((m) => m.content),
20
- ru: () => import('./i18n/ru').then((m) => m.content),
21
- sv: () => import('./i18n/sv').then((m) => m.content),
22
- tr: () => import('./i18n/tr').then((m) => m.content),
23
- zh: () => import('./i18n/zh').then((m) => m.content),
24
- },
25
- };
26
-
1
+ import { mortarCalculator } from './entry';
2
+ export * from './entry';
27
3
  export const MORTAR_CALCULATOR_TOOL: ToolDefinition = {
28
4
  entry: mortarCalculator,
29
5
  Component: () => import('./component.astro'),