@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,488 @@
1
+ .te-root {
2
+ width: 100%;
3
+ max-width: 1100px;
4
+ margin: 0 auto;
5
+ }
6
+
7
+ .te-grid {
8
+ display: grid;
9
+ grid-template-columns: 340px 1fr;
10
+ border: 1px solid #e5e7eb;
11
+ border-radius: 24px;
12
+ overflow: hidden;
13
+ }
14
+
15
+ :global(.theme-dark) .te-grid {
16
+ border-color: rgba(255, 255, 255, 0.08);
17
+ }
18
+
19
+ .te-sidebar {
20
+ padding: 2rem;
21
+ background: rgba(255, 255, 255, 0.6);
22
+ border-right: 1px solid #e5e7eb;
23
+ display: flex;
24
+ flex-direction: column;
25
+ gap: 1.5rem;
26
+ }
27
+
28
+ :global(.theme-dark) .te-sidebar {
29
+ background: rgba(255, 255, 255, 0.02);
30
+ border-right-color: rgba(255, 255, 255, 0.06);
31
+ }
32
+
33
+ .te-main {
34
+ padding: 2rem;
35
+ display: flex;
36
+ flex-direction: column;
37
+ gap: 1.5rem;
38
+ background: rgba(255, 255, 255, 0.3);
39
+ }
40
+
41
+ :global(.theme-dark) .te-main {
42
+ background: rgba(255, 255, 255, 0.01);
43
+ }
44
+
45
+ .te-section-hdr {
46
+ font-size: 0.65rem;
47
+ font-weight: 800;
48
+ text-transform: uppercase;
49
+ letter-spacing: 0.1em;
50
+ color: #f97316;
51
+ margin: 0;
52
+ }
53
+
54
+ .te-cat-badge {
55
+ display: flex;
56
+ align-items: center;
57
+ gap: 0.75rem;
58
+ background: white;
59
+ border: 1px solid rgba(0, 0, 0, 0.05);
60
+ border-radius: 12px;
61
+ padding: 0.75rem 1rem;
62
+ }
63
+
64
+ :global(.theme-dark) .te-cat-badge {
65
+ background: rgba(255, 255, 255, 0.04);
66
+ border-color: rgba(255, 255, 255, 0.06);
67
+ }
68
+
69
+ .te-cat-dot {
70
+ width: 10px;
71
+ height: 10px;
72
+ border-radius: 50%;
73
+ background: #f97316;
74
+ flex-shrink: 0;
75
+ }
76
+
77
+ .te-cat-name {
78
+ font-size: 0.8rem;
79
+ font-weight: 800;
80
+ color: #374151;
81
+ }
82
+
83
+ :global(.theme-dark) .te-cat-name {
84
+ color: #e5e7eb;
85
+ }
86
+
87
+ .te-field {
88
+ display: flex;
89
+ flex-direction: column;
90
+ gap: 0.5rem;
91
+ }
92
+
93
+ .te-label {
94
+ font-size: 0.7rem;
95
+ font-weight: 700;
96
+ text-transform: uppercase;
97
+ letter-spacing: 0.05em;
98
+ color: #6b7280;
99
+ }
100
+
101
+ :global(.theme-dark) .te-label {
102
+ color: #9ca3af;
103
+ }
104
+
105
+ .te-input-row {
106
+ position: relative;
107
+ display: flex;
108
+ align-items: center;
109
+ }
110
+
111
+ .te-input {
112
+ width: 100%;
113
+ padding: 0.875rem 3rem 0.875rem 1rem;
114
+ border: 2px solid #e5e7eb;
115
+ border-radius: 12px;
116
+ font-size: 1.1rem;
117
+ font-weight: 800;
118
+ background: white;
119
+ color: #111827;
120
+ transition: border-color 0.2s;
121
+ }
122
+
123
+ .te-input:focus {
124
+ outline: none;
125
+ border-color: #f97316;
126
+ }
127
+
128
+ :global(.theme-dark) .te-input {
129
+ background: rgba(0, 0, 0, 0.25);
130
+ border-color: rgba(255, 255, 255, 0.1);
131
+ color: #f9fafb;
132
+ }
133
+
134
+ :global(.theme-dark) .te-input:focus {
135
+ border-color: #f97316;
136
+ }
137
+
138
+ .te-unit {
139
+ position: absolute;
140
+ right: 1rem;
141
+ font-size: 0.7rem;
142
+ font-weight: 900;
143
+ color: #f97316;
144
+ pointer-events: none;
145
+ }
146
+
147
+ .te-select {
148
+ width: 100%;
149
+ padding: 0.875rem 2.5rem 0.875rem 1rem;
150
+ border: 2px solid #e5e7eb;
151
+ border-radius: 12px;
152
+ font-weight: 700;
153
+ font-size: 0.9rem;
154
+ background: white;
155
+ color: #111827;
156
+ appearance: none;
157
+ -webkit-appearance: none;
158
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath fill='%23f97316' d='M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6l1.41-1.42Z'/%3E%3C/svg%3E");
159
+ background-repeat: no-repeat;
160
+ background-position: right 0.75rem center;
161
+ cursor: pointer;
162
+ transition: border-color 0.2s;
163
+ }
164
+
165
+ .te-select:focus {
166
+ outline: none;
167
+ border-color: #f97316;
168
+ }
169
+
170
+ :global(.theme-dark) .te-select {
171
+ background-color: rgba(0, 0, 0, 0.25);
172
+ border-color: rgba(255, 255, 255, 0.1);
173
+ color: #f9fafb;
174
+ }
175
+
176
+ .te-temp-grid {
177
+ display: grid;
178
+ grid-template-columns: 1fr 1fr;
179
+ gap: 0.75rem;
180
+ }
181
+
182
+ .te-delta-bar {
183
+ display: flex;
184
+ justify-content: space-between;
185
+ align-items: center;
186
+ background: rgba(249, 115, 22, 0.08);
187
+ border: 1px solid rgba(249, 115, 22, 0.2);
188
+ border-radius: 12px;
189
+ padding: 1rem 1.25rem;
190
+ margin-top: auto;
191
+ }
192
+
193
+ .te-delta-lbl {
194
+ font-size: 0.65rem;
195
+ font-weight: 800;
196
+ text-transform: uppercase;
197
+ letter-spacing: 0.08em;
198
+ color: #f97316;
199
+ }
200
+
201
+ .te-delta-val {
202
+ font-size: 1.1rem;
203
+ font-weight: 900;
204
+ color: #f97316;
205
+ }
206
+
207
+ .te-viz {
208
+ position: relative;
209
+ background: rgba(0, 0, 0, 0.02);
210
+ border: 1px dashed rgba(0, 0, 0, 0.1);
211
+ border-radius: 16px;
212
+ padding: 2.5rem 3rem 1.5rem;
213
+ min-height: 120px;
214
+ display: flex;
215
+ flex-direction: column;
216
+ gap: 0.5rem;
217
+ justify-content: center;
218
+ }
219
+
220
+ :global(.theme-dark) .te-viz {
221
+ background: rgba(255, 255, 255, 0.01);
222
+ border-color: rgba(255, 255, 255, 0.06);
223
+ }
224
+
225
+ .te-beam-wrap {
226
+ position: relative;
227
+ height: 32px;
228
+ border-radius: 4px;
229
+ overflow: visible;
230
+ }
231
+
232
+ .te-beam-base {
233
+ position: absolute;
234
+ inset: 0;
235
+ background: linear-gradient(to bottom, #d1d5db, #9ca3af);
236
+ border-radius: 4px;
237
+ z-index: 2;
238
+ }
239
+
240
+ :global(.theme-dark) .te-beam-base {
241
+ background: linear-gradient(to bottom, #4b5563, #374151);
242
+ }
243
+
244
+ .te-beam-expand {
245
+ position: absolute;
246
+ left: 0;
247
+ top: 0;
248
+ height: 100%;
249
+ width: 100%;
250
+ background: rgba(249, 115, 22, 0.25);
251
+ border-right: 3px solid #f97316;
252
+ border-radius: 4px;
253
+ transition: width 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
254
+ z-index: 1;
255
+ }
256
+
257
+ .te-markers {
258
+ display: flex;
259
+ justify-content: space-between;
260
+ padding: 0 2px;
261
+ }
262
+
263
+ .te-marker {
264
+ font-size: 0.6rem;
265
+ font-weight: 800;
266
+ color: #9ca3af;
267
+ }
268
+
269
+ .te-ind-wrap {
270
+ position: absolute;
271
+ top: 0.75rem;
272
+ left: 0;
273
+ right: 0;
274
+ display: flex;
275
+ justify-content: center;
276
+ }
277
+
278
+ .te-ind {
279
+ background: #f97316;
280
+ color: white;
281
+ padding: 0.25rem 0.75rem;
282
+ border-radius: 20px;
283
+ font-size: 0.7rem;
284
+ font-weight: 900;
285
+ box-shadow: 0 4px 12px rgba(249, 115, 22, 0.35);
286
+ animation: te-bounce 2s infinite;
287
+ }
288
+
289
+ @keyframes te-bounce {
290
+ 0%,
291
+ 100% {
292
+ transform: translateY(0);
293
+ }
294
+ 50% {
295
+ transform: translateY(-4px);
296
+ }
297
+ }
298
+
299
+ .te-results {
300
+ display: grid;
301
+ grid-template-columns: 1fr 1fr;
302
+ gap: 1rem;
303
+ }
304
+
305
+ .te-result-primary,
306
+ .te-result-secondary {
307
+ padding: 1.5rem;
308
+ border-radius: 18px;
309
+ display: flex;
310
+ flex-direction: column;
311
+ gap: 0.5rem;
312
+ }
313
+
314
+ .te-result-primary {
315
+ background: linear-gradient(135deg, #f97316, #ea580c);
316
+ color: white;
317
+ box-shadow: 0 12px 28px rgba(234, 88, 12, 0.25);
318
+ }
319
+
320
+ .te-result-secondary {
321
+ background: rgba(255, 255, 255, 0.5);
322
+ border: 1px solid rgba(255, 255, 255, 0.7);
323
+ }
324
+
325
+ :global(.theme-dark) .te-result-secondary {
326
+ background: rgba(255, 255, 255, 0.04);
327
+ border-color: rgba(255, 255, 255, 0.06);
328
+ }
329
+
330
+ .te-result-lbl {
331
+ font-size: 0.65rem;
332
+ font-weight: 800;
333
+ text-transform: uppercase;
334
+ letter-spacing: 0.08em;
335
+ opacity: 0.75;
336
+ }
337
+
338
+ .te-result-secondary .te-result-lbl {
339
+ color: #6b7280;
340
+ opacity: 1;
341
+ }
342
+
343
+ :global(.theme-dark) .te-result-secondary .te-result-lbl {
344
+ color: #9ca3af;
345
+ }
346
+
347
+ .te-result-val {
348
+ display: flex;
349
+ align-items: baseline;
350
+ gap: 0.35rem;
351
+ }
352
+
353
+ .te-result-num {
354
+ font-size: 2rem;
355
+ font-weight: 900;
356
+ line-height: 1;
357
+ }
358
+
359
+ .te-result-secondary .te-result-num {
360
+ color: #111827;
361
+ }
362
+
363
+ :global(.theme-dark) .te-result-secondary .te-result-num {
364
+ color: #f9fafb;
365
+ }
366
+
367
+ .te-result-unit {
368
+ font-size: 0.8rem;
369
+ font-weight: 800;
370
+ opacity: 0.7;
371
+ }
372
+
373
+ .te-result-secondary .te-result-unit {
374
+ color: #374151;
375
+ opacity: 1;
376
+ }
377
+
378
+ :global(.theme-dark) .te-result-secondary .te-result-unit {
379
+ color: #d1d5db;
380
+ }
381
+
382
+ .te-ref-grid {
383
+ display: grid;
384
+ grid-template-columns: 1fr 1fr;
385
+ gap: 0.75rem;
386
+ }
387
+
388
+ .te-ref-card {
389
+ background: rgba(255, 255, 255, 0.4);
390
+ border: 1px solid rgba(255, 255, 255, 0.6);
391
+ border-radius: 14px;
392
+ padding: 1rem 1.25rem;
393
+ display: flex;
394
+ flex-direction: column;
395
+ gap: 0.3rem;
396
+ transition:
397
+ background 0.25s,
398
+ border-color 0.25s;
399
+ }
400
+
401
+ :global(.theme-dark) .te-ref-card {
402
+ background: rgba(255, 255, 255, 0.03);
403
+ border-color: rgba(255, 255, 255, 0.06);
404
+ }
405
+
406
+ .te-ref-card[data-risk="critical"] {
407
+ background: rgba(239, 68, 68, 0.08);
408
+ border-color: rgba(239, 68, 68, 0.25);
409
+ }
410
+
411
+ .te-ref-card[data-risk="moderate"] {
412
+ background: rgba(245, 158, 11, 0.08);
413
+ border-color: rgba(245, 158, 11, 0.25);
414
+ }
415
+
416
+ .te-ref-title {
417
+ font-size: 0.6rem;
418
+ font-weight: 800;
419
+ text-transform: uppercase;
420
+ letter-spacing: 0.08em;
421
+ color: #9ca3af;
422
+ }
423
+
424
+ .te-ref-val {
425
+ font-size: 1.1rem;
426
+ font-weight: 900;
427
+ color: #374151;
428
+ }
429
+
430
+ :global(.theme-dark) .te-ref-val {
431
+ color: #e5e7eb;
432
+ }
433
+
434
+ .te-ref-card[data-risk="critical"] .te-ref-val {
435
+ color: #ef4444;
436
+ }
437
+
438
+ .te-ref-card[data-risk="moderate"] .te-ref-val {
439
+ color: #f59e0b;
440
+ }
441
+
442
+ .te-tip-card {
443
+ display: flex;
444
+ align-items: flex-start;
445
+ gap: 0.75rem;
446
+ background: rgba(249, 115, 22, 0.04);
447
+ border: 1px dashed rgba(249, 115, 22, 0.2);
448
+ border-radius: 14px;
449
+ padding: 1rem 1.25rem;
450
+ }
451
+
452
+ .te-tip-bullet {
453
+ color: #f97316;
454
+ font-size: 0.7rem;
455
+ flex-shrink: 0;
456
+ padding-top: 0.15rem;
457
+ }
458
+
459
+ .te-tip-text {
460
+ margin: 0;
461
+ font-size: 0.82rem;
462
+ line-height: 1.55;
463
+ color: #6b7280;
464
+ font-style: italic;
465
+ }
466
+
467
+ :global(.theme-dark) .te-tip-text {
468
+ color: #9ca3af;
469
+ }
470
+
471
+ @media (max-width: 860px) {
472
+ .te-grid {
473
+ grid-template-columns: 1fr;
474
+ }
475
+
476
+ .te-sidebar {
477
+ border-right: none;
478
+ border-bottom: 1px solid #e5e7eb;
479
+ }
480
+
481
+ :global(.theme-dark) .te-sidebar {
482
+ border-bottom-color: rgba(255, 255, 255, 0.06);
483
+ }
484
+
485
+ .te-results {
486
+ grid-template-columns: 1fr;
487
+ }
488
+ }