@jjlmoya/utils-diy 1.31.0 → 1.33.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 (36) hide show
  1. package/package.json +2 -2
  2. package/scripts/validate-icons.mjs +57 -0
  3. package/src/category/index.ts +2 -1
  4. package/src/entries.ts +3 -1
  5. package/src/layouts/ProductionUtilityPage.astro +4 -4
  6. package/src/mfe/widget-height.ts +14 -0
  7. package/src/tests/locale_completeness.test.ts +2 -2
  8. package/src/tests/tool_validation.test.ts +2 -2
  9. package/src/tool/ladderAngleReachCalculator/bibliography.astro +6 -0
  10. package/src/tool/ladderAngleReachCalculator/bibliography.ts +12 -0
  11. package/src/tool/ladderAngleReachCalculator/component.astro +68 -0
  12. package/src/tool/ladderAngleReachCalculator/controller.ts +163 -0
  13. package/src/tool/ladderAngleReachCalculator/entry.ts +24 -0
  14. package/src/tool/ladderAngleReachCalculator/i18n/de.ts +31 -0
  15. package/src/tool/ladderAngleReachCalculator/i18n/en.ts +98 -0
  16. package/src/tool/ladderAngleReachCalculator/i18n/es.ts +31 -0
  17. package/src/tool/ladderAngleReachCalculator/i18n/fr.ts +32 -0
  18. package/src/tool/ladderAngleReachCalculator/i18n/id.ts +32 -0
  19. package/src/tool/ladderAngleReachCalculator/i18n/it.ts +32 -0
  20. package/src/tool/ladderAngleReachCalculator/i18n/ja.ts +32 -0
  21. package/src/tool/ladderAngleReachCalculator/i18n/ko.ts +32 -0
  22. package/src/tool/ladderAngleReachCalculator/i18n/nl.ts +31 -0
  23. package/src/tool/ladderAngleReachCalculator/i18n/pl.ts +32 -0
  24. package/src/tool/ladderAngleReachCalculator/i18n/pt.ts +31 -0
  25. package/src/tool/ladderAngleReachCalculator/i18n/ru.ts +32 -0
  26. package/src/tool/ladderAngleReachCalculator/i18n/sv.ts +32 -0
  27. package/src/tool/ladderAngleReachCalculator/i18n/tr.ts +32 -0
  28. package/src/tool/ladderAngleReachCalculator/i18n/zh.ts +32 -0
  29. package/src/tool/ladderAngleReachCalculator/index.ts +11 -0
  30. package/src/tool/ladderAngleReachCalculator/ladder-angle-and-reach-calculator.css +491 -0
  31. package/src/tool/ladderAngleReachCalculator/locale.ts +57 -0
  32. package/src/tool/ladderAngleReachCalculator/logic.test.ts +44 -0
  33. package/src/tool/ladderAngleReachCalculator/logic.ts +64 -0
  34. package/src/tool/ladderAngleReachCalculator/seo.astro +15 -0
  35. package/src/tool/ladderAngleReachCalculator/ui.ts +91 -0
  36. package/src/tools.ts +2 -1
@@ -0,0 +1,91 @@
1
+ export type LadderUnitSystem = 'metric' | 'imperial';
2
+ export type LadderSolveMode = 'height-and-length' | 'height-and-base' | 'length-and-base';
3
+ export type LadderDerivedField = 'base-distance' | 'ladder-length' | 'target-height';
4
+
5
+ export interface LadderInput {
6
+ unitSystem: LadderUnitSystem;
7
+ mode: LadderSolveMode;
8
+ knownOne: number;
9
+ knownTwo: number;
10
+ }
11
+
12
+ export type LadderErrorCode = 'positive-values' | 'base-too-far' | 'target-too-high';
13
+
14
+ export interface LadderOutput {
15
+ ladderLength: number;
16
+ targetHeight: number;
17
+ baseDistance: number;
18
+ angle: number;
19
+ verticalReach: number;
20
+ derivedValue: number;
21
+ derivedField: LadderDerivedField;
22
+ guideBaseDistance: number;
23
+ requiredLengthAtGuideAngle: number;
24
+ extensionAboveTarget: number;
25
+ angleStatus: 'too-flat' | 'within-guide' | 'too-steep';
26
+ reachesTarget: boolean;
27
+ }
28
+
29
+ export type LadderCalculation =
30
+ | { valid: true; output: LadderOutput }
31
+ | { valid: false; error: LadderErrorCode };
32
+
33
+ export interface LadderAngleReachUI extends Record<string, string> {
34
+ unitSystemLabel: string;
35
+ unitMetric: string;
36
+ unitImperial: string;
37
+ intro: string;
38
+ solveTitle: string;
39
+ modeHeightLength: string;
40
+ modeHeightBase: string;
41
+ modeLengthBase: string;
42
+ modeHeightLengthHint: string;
43
+ modeHeightBaseHint: string;
44
+ modeLengthBaseHint: string;
45
+ fieldHeight: string;
46
+ fieldLength: string;
47
+ fieldBase: string;
48
+ fieldHeightHelp: string;
49
+ fieldLengthHelp: string;
50
+ fieldBaseHelp: string;
51
+ calculatedTitle: string;
52
+ calculatedBase: string;
53
+ calculatedBaseHelp: string;
54
+ calculatedLength: string;
55
+ calculatedLengthHelp: string;
56
+ calculatedHeight: string;
57
+ calculatedHeightHelp: string;
58
+ diagramTitle: string;
59
+ angleTitle: string;
60
+ angleUnit: string;
61
+ angleGuide: string;
62
+ reachTitle: string;
63
+ reachHelp: string;
64
+ targetTitle: string;
65
+ targetHelp: string;
66
+ baseTitle: string;
67
+ baseHelp: string;
68
+ guideDistanceTitle: string;
69
+ guideDistanceHelp: string;
70
+ requiredLengthTitle: string;
71
+ requiredLengthHelp: string;
72
+ verdictReach: string;
73
+ verdictShort: string;
74
+ verdictReachHelp: string;
75
+ verdictShortHelp: string;
76
+ angleTooFlat: string;
77
+ angleWithinGuide: string;
78
+ angleTooSteep: string;
79
+ ladderLabel: string;
80
+ wallLabel: string;
81
+ targetLabel: string;
82
+ baseLabel: string;
83
+ groundLabel: string;
84
+ guideLabel: string;
85
+ invalidPositive: string;
86
+ invalidBase: string;
87
+ invalidTarget: string;
88
+ warning: string;
89
+ unitLengthMetric: string;
90
+ unitLengthImperial: string;
91
+ }
package/src/tools.ts CHANGED
@@ -18,6 +18,7 @@ import { PYTHAGOREAN_RIGHT_ANGLE_CALCULATOR_TOOL } from './tool/pythagoreanRight
18
18
  import { TWO_STROKE_MIXTURE_CALCULATOR_TOOL } from './tool/twoStrokeMixtureCalculator/index';
19
19
  import { DRYWALL_CALCULATOR_TOOL } from './tool/drywallCalculator/index';
20
20
  import { EXCAVATION_VOLUME_CALCULATOR_TOOL } from './tool/excavationVolumeCalculator/index';
21
+ import { LADDER_ANGLE_REACH_CALCULATOR_TOOL } from './tool/ladderAngleReachCalculator/index';
21
22
 
22
- export const ALL_TOOLS: ToolDefinition[] = [CLAY_CALCULATOR_TOOL, EPOXY_CALCULATOR_TOOL, BALUSTER_CALCULATOR_TOOL, MORTAR_CALCULATOR_TOOL, PASSEPARTOUT_CALCULATOR_TOOL, CONCRETE_CALCULATOR_TOOL, CUT_OPTIMIZER_TOOL, VOLTAGE_DROP_CALCULATOR_TOOL, FURNITURE_FIT_TOOL, THERMAL_EXPANSION_CALCULATOR_TOOL, DRILL_CALCULATOR_TOOL, STAIR_CALCULATOR_TOOL, DRILL_SHARPENER_TOOL, WORKSHOP_FRACTION_CONVERTER_TOOL, PYTHAGOREAN_RIGHT_ANGLE_CALCULATOR_TOOL, TWO_STROKE_MIXTURE_CALCULATOR_TOOL, DRYWALL_CALCULATOR_TOOL, EXCAVATION_VOLUME_CALCULATOR_TOOL];
23
+ export const ALL_TOOLS: ToolDefinition[] = [CLAY_CALCULATOR_TOOL, EPOXY_CALCULATOR_TOOL, BALUSTER_CALCULATOR_TOOL, MORTAR_CALCULATOR_TOOL, PASSEPARTOUT_CALCULATOR_TOOL, CONCRETE_CALCULATOR_TOOL, CUT_OPTIMIZER_TOOL, VOLTAGE_DROP_CALCULATOR_TOOL, FURNITURE_FIT_TOOL, THERMAL_EXPANSION_CALCULATOR_TOOL, DRILL_CALCULATOR_TOOL, STAIR_CALCULATOR_TOOL, DRILL_SHARPENER_TOOL, WORKSHOP_FRACTION_CONVERTER_TOOL, PYTHAGOREAN_RIGHT_ANGLE_CALCULATOR_TOOL, TWO_STROKE_MIXTURE_CALCULATOR_TOOL, DRYWALL_CALCULATOR_TOOL, EXCAVATION_VOLUME_CALCULATOR_TOOL, LADDER_ANGLE_REACH_CALCULATOR_TOOL];
23
24