@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
@@ -0,0 +1,618 @@
1
+ .mc-container {
2
+ position: relative;
3
+ }
4
+
5
+ .mc-canvas {
6
+ max-width: 1400px;
7
+ margin: 0 auto;
8
+ display: grid;
9
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
10
+ gap: 1.5rem;
11
+ }
12
+
13
+ @media (min-width: 1024px) {
14
+ .mc-canvas {
15
+ grid-template-columns: 1fr 1.2fr 1fr;
16
+ }
17
+ }
18
+
19
+ .mc-panel {
20
+ background: rgba(255, 255, 255, 0.8);
21
+ backdrop-filter: blur(10px);
22
+ border: 2px solid #e7e5e4;
23
+ border-radius: 1.5rem;
24
+ padding: 2rem;
25
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
26
+ transition: transform 0.3s, box-shadow 0.3s;
27
+ }
28
+
29
+ :global(.theme-dark) .mc-panel {
30
+ background: rgba(26, 26, 26, 0.8);
31
+ border-color: rgba(255, 255, 255, 0.1);
32
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
33
+ }
34
+
35
+ .mc-panel:hover {
36
+ transform: translateY(-4px);
37
+ box-shadow: 0 15px 50px rgba(0, 0, 0, 0.1);
38
+ }
39
+
40
+ .mc-panel-title {
41
+ font-size: 1.5rem;
42
+ font-weight: 700;
43
+ color: #292524;
44
+ margin-bottom: 1.5rem;
45
+ text-align: center;
46
+ }
47
+
48
+ :global(.theme-dark) .mc-panel-title {
49
+ color: #f5f1e8;
50
+ }
51
+
52
+ .mc-column-svg {
53
+ width: 100%;
54
+ max-width: 250px;
55
+ margin: 0 auto;
56
+ display: block;
57
+ }
58
+
59
+ .mc-column-section {
60
+ cursor: pointer;
61
+ transition: all 0.3s ease;
62
+ }
63
+
64
+ .mc-column-section:hover {
65
+ filter: brightness(1.1);
66
+ }
67
+
68
+ .mc-column-section.mc-active {
69
+ filter: drop-shadow(0 0 10px rgba(193, 105, 79, 0.6));
70
+ }
71
+
72
+ .mc-column-label {
73
+ font-size: 14px;
74
+ font-weight: 700;
75
+ text-anchor: middle;
76
+ fill: #292524;
77
+ pointer-events: none;
78
+ }
79
+
80
+ :global(.theme-dark) .mc-column-label {
81
+ fill: #f5f1e8;
82
+ }
83
+
84
+ .mc-column-sublabel {
85
+ font-size: 10px;
86
+ text-anchor: middle;
87
+ fill: #78716c;
88
+ pointer-events: none;
89
+ }
90
+
91
+ .mc-phase-info {
92
+ margin-top: 2rem;
93
+ padding: 1.5rem;
94
+ background: rgba(245, 241, 232, 0.5);
95
+ border-radius: 1rem;
96
+ border: 1px solid #e7e5e4;
97
+ }
98
+
99
+ :global(.theme-dark) .mc-phase-info {
100
+ background: rgba(40, 35, 30, 0.5);
101
+ border-color: rgba(255, 255, 255, 0.05);
102
+ }
103
+
104
+ .mc-phase-info h3 {
105
+ font-size: 1.25rem;
106
+ color: #c1694f;
107
+ margin-bottom: 0.5rem;
108
+ font-weight: 700;
109
+ }
110
+
111
+ .mc-phase-info p {
112
+ font-size: 0.875rem;
113
+ color: #57534e;
114
+ line-height: 1.6;
115
+ }
116
+
117
+ :global(.theme-dark) .mc-phase-info p {
118
+ color: #a8a29e;
119
+ }
120
+
121
+ .mc-material-selector {
122
+ display: flex;
123
+ gap: 1rem;
124
+ margin-bottom: 1.5rem;
125
+ }
126
+
127
+ .mc-material-btn {
128
+ flex: 1;
129
+ display: flex;
130
+ align-items: center;
131
+ justify-content: center;
132
+ gap: 0.5rem;
133
+ padding: 1rem;
134
+ background: rgba(245, 241, 232, 0.5);
135
+ border: 2px solid #e7e5e4;
136
+ border-radius: 0.75rem;
137
+ font-weight: 600;
138
+ color: #57534e;
139
+ cursor: pointer;
140
+ transition: all 0.3s;
141
+ }
142
+
143
+ :global(.theme-dark) .mc-material-btn {
144
+ background: rgba(40, 35, 30, 0.5);
145
+ border-color: rgba(255, 255, 255, 0.1);
146
+ color: #a8a29e;
147
+ }
148
+
149
+ .mc-material-btn.mc-active {
150
+ background: #c1694f;
151
+ border-color: #c1694f;
152
+ color: #fff;
153
+ }
154
+
155
+ .mc-btn-icon {
156
+ width: 1.25rem;
157
+ height: 1.25rem;
158
+ }
159
+
160
+ .mc-cal-toggle {
161
+ margin-bottom: 1.5rem;
162
+ padding: 0.75rem 1rem;
163
+ background: rgba(245, 241, 232, 0.5);
164
+ border-radius: 0.75rem;
165
+ border: 1px solid #e7e5e4;
166
+ }
167
+
168
+ :global(.theme-dark) .mc-cal-toggle {
169
+ background: rgba(40, 35, 30, 0.5);
170
+ border-color: rgba(255, 255, 255, 0.1);
171
+ }
172
+
173
+ .mc-toggle-label {
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 0.75rem;
177
+ cursor: pointer;
178
+ }
179
+
180
+ .mc-toggle-label input[type="checkbox"] {
181
+ width: 2.5rem;
182
+ height: 1.25rem;
183
+ appearance: none;
184
+ background: #e7e5e4;
185
+ border-radius: 9999px;
186
+ position: relative;
187
+ cursor: pointer;
188
+ transition: background 0.3s;
189
+ flex-shrink: 0;
190
+ }
191
+
192
+ .mc-toggle-label input[type="checkbox"]:checked {
193
+ background: #c1694f;
194
+ }
195
+
196
+ .mc-toggle-label input[type="checkbox"]::after {
197
+ content: '';
198
+ position: absolute;
199
+ width: 1rem;
200
+ height: 1rem;
201
+ background: #fff;
202
+ border-radius: 50%;
203
+ top: 0.125rem;
204
+ left: 0.125rem;
205
+ transition: left 0.3s;
206
+ }
207
+
208
+ .mc-toggle-label input[type="checkbox"]:checked::after {
209
+ left: 1.375rem;
210
+ }
211
+
212
+ .mc-toggle-text {
213
+ font-size: 0.875rem;
214
+ color: #57534e;
215
+ display: flex;
216
+ flex-direction: column;
217
+ gap: 0.125rem;
218
+ }
219
+
220
+ :global(.theme-dark) .mc-toggle-text {
221
+ color: #a8a29e;
222
+ }
223
+
224
+ .mc-type-pasta {
225
+ font-weight: 600;
226
+ color: #292524;
227
+ }
228
+
229
+ :global(.theme-dark) .mc-type-pasta {
230
+ color: #f5f1e8;
231
+ }
232
+
233
+ .mc-type-polvo {
234
+ font-size: 0.8rem;
235
+ opacity: 0.7;
236
+ }
237
+
238
+ .mc-bodegon-svg {
239
+ width: 100%;
240
+ height: 200px;
241
+ border: 1px solid #e7e5e4;
242
+ border-radius: 0.75rem;
243
+ background: rgba(245, 241, 232, 0.3);
244
+ margin-bottom: 1rem;
245
+ }
246
+
247
+ :global(.theme-dark) .mc-bodegon-svg {
248
+ border-color: rgba(255, 255, 255, 0.1);
249
+ background: rgba(10, 10, 10, 0.3);
250
+ }
251
+
252
+ .mc-slider-container {
253
+ margin-bottom: 0.75rem;
254
+ }
255
+
256
+ .mc-slider {
257
+ width: 100%;
258
+ accent-color: #c1694f;
259
+ }
260
+
261
+ .mc-ruler-marks {
262
+ display: flex;
263
+ justify-content: space-between;
264
+ font-size: 0.75rem;
265
+ color: #78716c;
266
+ margin-top: 0.25rem;
267
+ }
268
+
269
+ .mc-quantity-display {
270
+ display: flex;
271
+ align-items: center;
272
+ gap: 0.5rem;
273
+ margin-bottom: 1.5rem;
274
+ font-size: 0.875rem;
275
+ color: #57534e;
276
+ }
277
+
278
+ :global(.theme-dark) .mc-quantity-display {
279
+ color: #a8a29e;
280
+ }
281
+
282
+ .mc-quantity-value {
283
+ font-size: 1.5rem;
284
+ font-weight: 700;
285
+ color: #c1694f;
286
+ }
287
+
288
+ .mc-quantity-unit {
289
+ font-weight: 600;
290
+ color: #78716c;
291
+ }
292
+
293
+ .mc-complementary {
294
+ padding: 1rem;
295
+ background: rgba(245, 241, 232, 0.5);
296
+ border-radius: 0.75rem;
297
+ border: 1px solid #e7e5e4;
298
+ }
299
+
300
+ :global(.theme-dark) .mc-complementary {
301
+ background: rgba(40, 35, 30, 0.5);
302
+ border-color: rgba(255, 255, 255, 0.1);
303
+ }
304
+
305
+ .mc-complementary-header {
306
+ display: flex;
307
+ align-items: center;
308
+ gap: 0.5rem;
309
+ font-size: 0.875rem;
310
+ font-weight: 600;
311
+ color: #78716c;
312
+ margin-bottom: 0.75rem;
313
+ }
314
+
315
+ :global(.theme-dark) .mc-complementary-header {
316
+ color: #a8a29e;
317
+ }
318
+
319
+ .mc-arrow-icon {
320
+ width: 1rem;
321
+ height: 1rem;
322
+ color: #c1694f;
323
+ }
324
+
325
+ .mc-complementary-content {
326
+ display: flex;
327
+ flex-direction: column;
328
+ gap: 0.5rem;
329
+ }
330
+
331
+ .mc-complementary-item {
332
+ display: flex;
333
+ align-items: center;
334
+ gap: 0.5rem;
335
+ }
336
+
337
+ .mc-comp-label {
338
+ font-weight: 600;
339
+ color: #292524;
340
+ min-width: 4rem;
341
+ }
342
+
343
+ :global(.theme-dark) .mc-comp-label {
344
+ color: #f5f1e8;
345
+ }
346
+
347
+ .mc-comp-value {
348
+ font-size: 1.25rem;
349
+ font-weight: 700;
350
+ color: #c1694f;
351
+ }
352
+
353
+ .mc-comp-unit {
354
+ color: #78716c;
355
+ }
356
+
357
+ .mc-ratio-row {
358
+ font-size: 0.875rem;
359
+ color: #78716c;
360
+ }
361
+
362
+ :global(.theme-dark) .mc-ratio-row {
363
+ color: #a8a29e;
364
+ }
365
+
366
+ .mc-ratio-value {
367
+ font-weight: 700;
368
+ color: #292524;
369
+ }
370
+
371
+ :global(.theme-dark) .mc-ratio-value {
372
+ color: #f5f1e8;
373
+ }
374
+
375
+ .mc-wall-svg {
376
+ width: 100%;
377
+ height: 300px;
378
+ border-radius: 1rem;
379
+ border: 1px solid #e7e5e4;
380
+ background: #fafaf9;
381
+ margin-bottom: 1.5rem;
382
+ }
383
+
384
+ :global(.theme-dark) .mc-wall-svg {
385
+ border-color: rgba(255, 255, 255, 0.1);
386
+ background: #0a0a0a;
387
+ }
388
+
389
+ #mc-mortar-coverage,
390
+ #mc-mortar-texture {
391
+ transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
392
+ }
393
+
394
+ .mc-coverage-display {
395
+ display: flex;
396
+ align-items: center;
397
+ gap: 0.5rem;
398
+ margin-bottom: 1.5rem;
399
+ }
400
+
401
+ .mc-coverage-label {
402
+ font-size: 0.875rem;
403
+ color: #78716c;
404
+ font-weight: 600;
405
+ }
406
+
407
+ :global(.theme-dark) .mc-coverage-label {
408
+ color: #a8a29e;
409
+ }
410
+
411
+ .mc-coverage-value {
412
+ font-size: 2rem;
413
+ font-weight: 900;
414
+ color: #c1694f;
415
+ line-height: 1;
416
+ }
417
+
418
+ .mc-coverage-unit {
419
+ font-size: 1rem;
420
+ font-weight: 600;
421
+ color: #78716c;
422
+ }
423
+
424
+ .mc-technical-details {
425
+ display: flex;
426
+ flex-direction: column;
427
+ gap: 0.5rem;
428
+ }
429
+
430
+ .mc-detail-row {
431
+ display: flex;
432
+ justify-content: space-between;
433
+ align-items: center;
434
+ padding: 0.5rem 0;
435
+ border-bottom: 1px solid #e7e5e4;
436
+ font-size: 0.875rem;
437
+ }
438
+
439
+ :global(.theme-dark) .mc-detail-row {
440
+ border-bottom-color: rgba(255, 255, 255, 0.05);
441
+ }
442
+
443
+ .mc-detail-row:last-child {
444
+ border-bottom: none;
445
+ }
446
+
447
+ .mc-detail-label {
448
+ color: #78716c;
449
+ font-weight: 500;
450
+ }
451
+
452
+ :global(.theme-dark) .mc-detail-label {
453
+ color: #a8a29e;
454
+ }
455
+
456
+ .mc-detail-value {
457
+ font-weight: 700;
458
+ color: #292524;
459
+ }
460
+
461
+ :global(.theme-dark) .mc-detail-value {
462
+ color: #f5f1e8;
463
+ }
464
+
465
+ .mc-granulometry-section {
466
+ max-width: 1400px;
467
+ margin: 4rem auto 2rem;
468
+ }
469
+
470
+ .mc-section-title {
471
+ font-size: 2rem;
472
+ font-weight: 700;
473
+ text-align: center;
474
+ color: #292524;
475
+ margin-bottom: 2.5rem;
476
+ position: relative;
477
+ }
478
+
479
+ :global(.theme-dark) .mc-section-title {
480
+ color: #f5f1e8;
481
+ }
482
+
483
+ .mc-section-title::after {
484
+ content: '';
485
+ display: block;
486
+ width: 100px;
487
+ height: 3px;
488
+ background: linear-gradient(90deg, transparent, #c1694f, transparent);
489
+ margin: 0.75rem auto 0;
490
+ }
491
+
492
+ .mc-granulometry-cards {
493
+ display: grid;
494
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
495
+ gap: 2rem;
496
+ margin-bottom: 3rem;
497
+ }
498
+
499
+ .mc-grain-card {
500
+ background: #fafaf9;
501
+ border: 2px solid #e7e5e4;
502
+ border-radius: 1rem;
503
+ padding: 2rem;
504
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
505
+ opacity: 0.6;
506
+ transform: scale(0.98);
507
+ }
508
+
509
+ :global(.theme-dark) .mc-grain-card {
510
+ background: #1c1917;
511
+ border-color: rgba(255, 255, 255, 0.1);
512
+ }
513
+
514
+ .mc-grain-card:hover {
515
+ transform: scale(1);
516
+ opacity: 0.8;
517
+ }
518
+
519
+ .mc-grain-card.mc-active {
520
+ opacity: 1;
521
+ transform: scale(1.02);
522
+ border-color: #c1694f;
523
+ box-shadow: 0 8px 32px rgba(193, 105, 79, 0.2);
524
+ background: #fff;
525
+ }
526
+
527
+ :global(.theme-dark) .mc-grain-card.mc-active {
528
+ background: #292524;
529
+ border-color: #c1694f;
530
+ box-shadow: 0 8px 32px rgba(193, 105, 79, 0.3);
531
+ }
532
+
533
+ .mc-grain-header {
534
+ text-align: center;
535
+ margin-bottom: 1.5rem;
536
+ }
537
+
538
+ .mc-grain-title {
539
+ font-size: 1.25rem;
540
+ font-weight: 700;
541
+ color: #292524;
542
+ margin: 0 0 0.5rem;
543
+ }
544
+
545
+ :global(.theme-dark) .mc-grain-title {
546
+ color: #f5f1e8;
547
+ }
548
+
549
+ .mc-grain-subtitle {
550
+ font-size: 0.875rem;
551
+ color: #78716c;
552
+ font-weight: 500;
553
+ }
554
+
555
+ :global(.theme-dark) .mc-grain-subtitle {
556
+ color: #a8a29e;
557
+ }
558
+
559
+ .mc-grain-visual {
560
+ background: #f5f5f4;
561
+ border-radius: 0.75rem;
562
+ padding: 1rem;
563
+ margin-bottom: 1.5rem;
564
+ border: 1px solid #e7e5e4;
565
+ }
566
+
567
+ :global(.theme-dark) .mc-grain-visual {
568
+ background: #0a0a0a;
569
+ border-color: rgba(255, 255, 255, 0.05);
570
+ }
571
+
572
+ .mc-grain-svg {
573
+ width: 100%;
574
+ height: auto;
575
+ display: block;
576
+ }
577
+
578
+ .mc-grain-specs {
579
+ display: flex;
580
+ flex-direction: column;
581
+ gap: 0.75rem;
582
+ }
583
+
584
+ .mc-spec-item {
585
+ display: flex;
586
+ justify-content: space-between;
587
+ align-items: center;
588
+ padding: 0.5rem 0;
589
+ border-bottom: 1px solid #e7e5e4;
590
+ }
591
+
592
+ :global(.theme-dark) .mc-spec-item {
593
+ border-bottom-color: rgba(255, 255, 255, 0.05);
594
+ }
595
+
596
+ .mc-spec-item:last-child {
597
+ border-bottom: none;
598
+ }
599
+
600
+ .mc-spec-label {
601
+ font-size: 0.875rem;
602
+ color: #78716c;
603
+ font-weight: 500;
604
+ }
605
+
606
+ :global(.theme-dark) .mc-spec-label {
607
+ color: #a8a29e;
608
+ }
609
+
610
+ .mc-spec-value {
611
+ font-size: 0.875rem;
612
+ color: #292524;
613
+ font-weight: 600;
614
+ }
615
+
616
+ :global(.theme-dark) .mc-spec-value {
617
+ color: #f5f1e8;
618
+ }