@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
@@ -281,325 +281,3 @@ const t = (ui ?? {}) as BalusterCalculatorUI;
281
281
  init();
282
282
  </script>
283
283
 
284
- <style>
285
- .bc-root {
286
- width: 100%;
287
- max-width: 56rem;
288
- margin: 0 auto;
289
- padding: 1rem;
290
- display: flex;
291
- flex-direction: column;
292
- gap: 2rem;
293
- }
294
-
295
- .bc-input-panel {
296
- background: #fff;
297
- border-radius: 1.5rem;
298
- padding: 1.5rem;
299
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
300
- border: 1px solid #f1f5f9;
301
- }
302
-
303
- .bc-panel-header {
304
- display: flex;
305
- align-items: center;
306
- gap: 0.75rem;
307
- margin-bottom: 1.5rem;
308
- }
309
-
310
- .bc-panel-icon {
311
- padding: 0.75rem;
312
- background: #dbeafe;
313
- border-radius: 0.75rem;
314
- color: #2563eb;
315
- font-size: 1.5rem;
316
- display: flex;
317
- flex-shrink: 0;
318
- }
319
-
320
- .bc-icon {
321
- width: 1.5rem;
322
- height: 1.5rem;
323
- }
324
-
325
- .bc-panel-title {
326
- font-size: 1.25rem;
327
- font-weight: 700;
328
- color: #1e293b;
329
- margin: 0;
330
- }
331
-
332
- .bc-panel-desc {
333
- font-size: 0.875rem;
334
- color: #94a3b8;
335
- margin: 0;
336
- }
337
-
338
- .bc-inputs-grid {
339
- display: grid;
340
- grid-template-columns: 1fr;
341
- gap: 1.5rem;
342
- }
343
-
344
- @media (min-width: 768px) {
345
- .bc-inputs-grid {
346
- grid-template-columns: 1fr 1fr 1fr;
347
- }
348
- }
349
-
350
- .bc-input-group {
351
- display: flex;
352
- flex-direction: column;
353
- gap: 0.5rem;
354
- }
355
-
356
- .bc-label {
357
- display: block;
358
- font-size: 0.875rem;
359
- font-weight: 500;
360
- color: #374151;
361
- }
362
-
363
- .bc-input-wrapper {
364
- position: relative;
365
- }
366
-
367
- .bc-input {
368
- display: block;
369
- width: 100%;
370
- padding: 0.75rem 2.5rem 0.75rem 1rem;
371
- border-radius: 0.75rem;
372
- background: #f8fafc;
373
- border: 1px solid transparent;
374
- color: #1e293b;
375
- font-size: 1rem;
376
- outline: none;
377
- transition: border-color 0.2s, box-shadow 0.2s;
378
- box-sizing: border-box;
379
- }
380
-
381
- .bc-input:focus {
382
- border-color: #3b82f6;
383
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
384
- }
385
-
386
- .bc-unit-label {
387
- position: absolute;
388
- right: 1rem;
389
- top: 50%;
390
- transform: translateY(-50%);
391
- color: #94a3b8;
392
- font-size: 0.875rem;
393
- pointer-events: none;
394
- }
395
-
396
- .bc-unit-switcher {
397
- display: flex;
398
- justify-content: flex-end;
399
- margin-top: 1.5rem;
400
- }
401
-
402
- .bc-unit-toggle {
403
- display: inline-flex;
404
- background: #f1f5f9;
405
- padding: 0.25rem;
406
- border-radius: 0.5rem;
407
- gap: 0.25rem;
408
- }
409
-
410
- .bc-unit-btn {
411
- padding: 0.375rem 1rem;
412
- border-radius: 0.375rem;
413
- border: none;
414
- font-size: 0.875rem;
415
- font-weight: 500;
416
- cursor: pointer;
417
- transition: all 0.2s;
418
- color: #64748b;
419
- background: transparent;
420
- }
421
-
422
- [data-bc-unit][data-bc-active='true'] {
423
- background: #fff;
424
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
425
- color: #1e293b;
426
- }
427
-
428
- .bc-blueprint {
429
- background: #1e3a8a;
430
- border-radius: 1.5rem;
431
- padding: 0.25rem;
432
- box-shadow: 0 12px 40px rgba(30, 58, 138, 0.3);
433
- overflow: hidden;
434
- border: 4px solid rgba(255, 255, 255, 0.1);
435
- position: relative;
436
- }
437
-
438
- .bc-blueprint-grid {
439
- position: absolute;
440
- inset: 0;
441
- opacity: 0.1;
442
- background-image: linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg, #fff 1px, transparent 1px);
443
- background-size: 20px 20px;
444
- pointer-events: none;
445
- }
446
-
447
- .bc-blueprint-inner {
448
- position: relative;
449
- padding: 1.5rem;
450
- color: #bfdbfe;
451
- }
452
-
453
- @media (min-width: 768px) {
454
- .bc-blueprint-inner {
455
- padding: 2.5rem;
456
- }
457
- }
458
-
459
- .bc-bp-header {
460
- display: flex;
461
- justify-content: space-between;
462
- align-items: flex-start;
463
- margin-bottom: 2rem;
464
- padding-bottom: 1rem;
465
- border-bottom: 1px solid rgba(255, 255, 255, 0.2);
466
- }
467
-
468
- .bc-bp-plan-title {
469
- font-size: 1.25rem;
470
- letter-spacing: 0.1em;
471
- text-transform: uppercase;
472
- color: #fff;
473
- margin: 0 0 0.25rem;
474
- }
475
-
476
- .bc-bp-ref {
477
- font-size: 0.75rem;
478
- opacity: 0.6;
479
- margin: 0;
480
- }
481
-
482
- .bc-bp-count-block {
483
- text-align: right;
484
- }
485
-
486
- .bc-bp-count {
487
- font-size: 1.875rem;
488
- font-weight: 700;
489
- color: #fff;
490
- margin: 0 0 0.25rem;
491
- line-height: 1;
492
- }
493
-
494
- .bc-bp-count-label {
495
- font-size: 0.625rem;
496
- opacity: 0.6;
497
- text-transform: uppercase;
498
- letter-spacing: 0.1em;
499
- margin: 0;
500
- }
501
-
502
- .bc-bp-stats {
503
- display: grid;
504
- grid-template-columns: 1fr 1fr;
505
- gap: 1rem;
506
- margin-bottom: 2rem;
507
- }
508
-
509
- @media (min-width: 768px) {
510
- .bc-bp-stats {
511
- grid-template-columns: 1fr 1fr 1fr 1fr;
512
- }
513
- }
514
-
515
- .bc-stat-card {
516
- background: rgba(255, 255, 255, 0.05);
517
- backdrop-filter: blur(4px);
518
- padding: 0.75rem;
519
- border-radius: 0.375rem;
520
- border: 1px solid rgba(255, 255, 255, 0.1);
521
- }
522
-
523
- .bc-stat-label {
524
- display: block;
525
- font-size: 0.625rem;
526
- opacity: 0.5;
527
- text-transform: uppercase;
528
- letter-spacing: 0.05em;
529
- margin-bottom: 0.25rem;
530
- }
531
-
532
- .bc-stat-value {
533
- font-size: 1.125rem;
534
- font-weight: 700;
535
- color: #fff;
536
- }
537
-
538
- .bc-visualizer {
539
- width: 100%;
540
- height: 12rem;
541
- border: 1px dashed rgba(255, 255, 255, 0.3);
542
- border-radius: 0.375rem;
543
- background: rgba(23, 37, 84, 0.5);
544
- overflow: hidden;
545
- position: relative;
546
- }
547
-
548
- @media (min-width: 768px) {
549
- .bc-visualizer {
550
- height: 16rem;
551
- }
552
- }
553
-
554
- .bc-svg {
555
- width: 100%;
556
- height: 100%;
557
- }
558
-
559
- .bc-disclaimer {
560
- text-align: center;
561
- font-size: 0.75rem;
562
- opacity: 0.4;
563
- margin-top: 1rem;
564
- margin-bottom: 0;
565
- }
566
-
567
- :global(.theme-dark) .bc-input-panel {
568
- background: #18181b;
569
- border-color: rgba(51, 65, 85, 0.4);
570
- }
571
-
572
- :global(.theme-dark) .bc-panel-icon {
573
- background: rgba(30, 58, 138, 0.3);
574
- }
575
-
576
- :global(.theme-dark) .bc-panel-title {
577
- color: #f1f5f9;
578
- }
579
-
580
- :global(.theme-dark) .bc-label {
581
- color: #94a3b8;
582
- }
583
-
584
- :global(.theme-dark) .bc-input {
585
- background: #27272a;
586
- color: #f1f5f9;
587
- }
588
-
589
- :global(.theme-dark) .bc-input:focus {
590
- border-color: #3b82f6;
591
- }
592
-
593
- :global(.theme-dark) .bc-unit-toggle {
594
- background: #27272a;
595
- }
596
-
597
- :global(.theme-dark) [data-bc-unit][data-bc-active='true'] {
598
- background: #3f3f46;
599
- color: #f1f5f9;
600
- }
601
-
602
- :global(.theme-dark) .bc-blueprint {
603
- background: #0f172a;
604
- }
605
- </style>
@@ -0,0 +1,29 @@
1
+ import type { DiyToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { BalusterCalculatorUI } from './ui';
3
+
4
+ export type BalusterCalculatorLocaleContent = ToolLocaleContent<BalusterCalculatorUI>;
5
+
6
+ export const balusterCalculator: DiyToolEntry<BalusterCalculatorUI> = {
7
+ id: 'baluster-calculator',
8
+ icons: {
9
+ bg: 'mdi:ruler',
10
+ fg: 'mdi:view-week',
11
+ },
12
+ i18n: {
13
+ de: () => import('./i18n/de').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ es: () => import('./i18n/es').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { DiyToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { BalusterCalculatorUI } from './ui';
3
-
4
- export type BalusterCalculatorLocaleContent = ToolLocaleContent<BalusterCalculatorUI>;
5
-
6
- export const balusterCalculator: DiyToolEntry<BalusterCalculatorUI> = {
7
- id: 'baluster-calculator',
8
- icons: {
9
- bg: 'mdi:ruler',
10
- fg: 'mdi:view-week',
11
- },
12
- i18n: {
13
- de: () => import('./i18n/de').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- es: () => import('./i18n/es').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { balusterCalculator } from './entry';
2
+ export * from './entry';
32
3
  export const BALUSTER_CALCULATOR_TOOL: ToolDefinition = {
33
4
  entry: balusterCalculator,
34
5
  Component: () => import('./component.astro'),