@jjlmoya/utils-home 1.35.0 → 1.37.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.
- package/package.json +1 -1
- package/scripts/fix_ru.mjs +79 -0
- package/src/entries.ts +4 -1
- package/src/index.ts +1 -0
- package/src/layouts/PreviewLayout.astro +1 -0
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/applianceCostCalculator/i18n/pl.ts +53 -53
- package/src/tool/applianceCostCalculator/i18n/pt.ts +48 -48
- package/src/tool/heatingComparator/heating-consumption-comparator.css +89 -4
- package/src/tool/humidityCalculator/bibliography.ts +2 -2
- package/src/tool/humidityCalculator/i18n/sv.ts +57 -57
- package/src/tool/projectorCalculator/i18n/es.ts +1 -1
- package/src/tool/tileLayoutCalculator/tile-layout-calculator.css +90 -5
- package/src/tool/waterSoftener/bibliography.astro +14 -0
- package/src/tool/waterSoftener/bibliography.ts +14 -0
- package/src/tool/waterSoftener/component.astro +321 -0
- package/src/tool/waterSoftener/entry.ts +29 -0
- package/src/tool/waterSoftener/i18n/de.ts +222 -0
- package/src/tool/waterSoftener/i18n/en.ts +222 -0
- package/src/tool/waterSoftener/i18n/es.ts +222 -0
- package/src/tool/waterSoftener/i18n/fr.ts +222 -0
- package/src/tool/waterSoftener/i18n/id.ts +222 -0
- package/src/tool/waterSoftener/i18n/it.ts +222 -0
- package/src/tool/waterSoftener/i18n/ja.ts +222 -0
- package/src/tool/waterSoftener/i18n/ko.ts +222 -0
- package/src/tool/waterSoftener/i18n/nl.ts +222 -0
- package/src/tool/waterSoftener/i18n/pl.ts +222 -0
- package/src/tool/waterSoftener/i18n/pt.ts +222 -0
- package/src/tool/waterSoftener/i18n/ru.ts +222 -0
- package/src/tool/waterSoftener/i18n/sv.ts +222 -0
- package/src/tool/waterSoftener/i18n/tr.ts +222 -0
- package/src/tool/waterSoftener/i18n/zh.ts +222 -0
- package/src/tool/waterSoftener/index.ts +9 -0
- package/src/tool/waterSoftener/logic.ts +103 -0
- package/src/tool/waterSoftener/seo.astro +15 -0
- package/src/tool/waterSoftener/ui.ts +34 -0
- package/src/tool/waterSoftener/water-softener.css +449 -0
- package/src/tool/wifiRangeSimulator/i18n/ru.ts +212 -212
- package/src/tools.ts +2 -0
|
@@ -6,65 +6,65 @@ import { bibliography } from '../bibliography';
|
|
|
6
6
|
const slug = 'luftfuktighetskalkylator';
|
|
7
7
|
const title = 'Hemluftfuktighet och Avfuktare Drifttid Estimator';
|
|
8
8
|
const description =
|
|
9
|
-
'
|
|
9
|
+
'Beräkna hur mycket vatten din avfuktare måste avlägsna för att föra ett fuktigt rum till en hälsosam luftfuktighetsnivå. Se beräknad drifttid, mögelriskvarningar och komfortzonsvisualiseringar i ett interaktivt verktyg.';
|
|
10
10
|
|
|
11
11
|
const faqData = [
|
|
12
12
|
{
|
|
13
|
-
question: 'Hur
|
|
13
|
+
question: 'Hur länge ska en avfuktare gå per dag?',
|
|
14
14
|
answer:
|
|
15
|
-
'I ett
|
|
15
|
+
'I ett måttligt fuktigt rum behöver en standard hushållsavfuktare vanligtvis gå mellan 8 och 12 timmar per dag för att bibehålla 50 procent relativ luftfuktighet. Vid mycket fuktiga förhållanden eller efter vattenskador kan kontinuerlig drift i 24 till 48 timmar vara nödvändig för att uppnå baslinjetorrhet.',
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
question: 'Vilken
|
|
18
|
+
question: 'Vilken inomhusluftfuktighetsnivå förhindrar mögel?',
|
|
19
19
|
answer:
|
|
20
|
-
'
|
|
20
|
+
'Mögelväxt hämmas när inomhus relativ luftfuktighet hålls under 60 procent. Den ideala komfortzonen för människors hälsa och byggnadens bevarande ligger mellan 40 och 50 procent relativ luftfuktighet. Nivåer över 70 procent skapar en högriskmiljö för mögelsporer att gro inom 24 till 48 timmar.',
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
question: 'Hur mycket vatten kan luft
|
|
23
|
+
question: 'Hur mycket vatten kan luft hålla?',
|
|
24
24
|
answer:
|
|
25
|
-
'
|
|
25
|
+
'Mängden vattenånga luft kan hålla beror på temperaturen. Vid 20 grader Celsius innehåller mättad luft cirka 17 gram vatten per kubikmeter. Vid 25 grader Celsius stiger detta till ungefär 23 gram per kubikmeter. Ett 30 kvadratmeter stort rum vid 25 grader Celsius och 70 procent luftfuktighet innehåller ungefär 8 liter osynligt vatten i luften.',
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
|
-
question: '
|
|
28
|
+
question: 'Påverkar temperatur avfuktarens effektivitet?',
|
|
29
29
|
answer:
|
|
30
|
-
'Ja. Kompressorbaserade avfuktare fungerar
|
|
30
|
+
'Ja. Kompressorbaserade avfuktare fungerar bäst över 18 grader Celsius. Under 15 grader Celsius sjunker deras prestanda eftersom förångarspolar kan frysa över. Dessicant avfuktare är bättre lämpade för kalla utrymmen som garage eller källare eftersom de använder en kemisk torkningsprocess istället för kondensering.',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
|
-
question: 'Vilken storlek
|
|
33
|
+
question: 'Vilken storlek på avfuktare behöver jag?',
|
|
34
34
|
answer:
|
|
35
|
-
'
|
|
35
|
+
'För ett måttligt fuktigt rum upp till 50 kvadratmeter räcker vanligtvis en enhet på 10 till 12 liter per dag. För mycket fuktiga rum eller utrymmen över 50 kvadratmeter, välj en 20 liter per dag modell. Efter översvämning eller svår fuktighet återställer en industriell enhet på 30 liter per dag förhållandena snabbare.',
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
|
-
question: 'Kan en avfuktare torka
|
|
38
|
+
question: 'Kan en avfuktare torka tvätt?',
|
|
39
39
|
answer:
|
|
40
|
-
'Ja. En avfuktare med
|
|
40
|
+
'Ja. En avfuktare med tvättläge kan effektivt torka kläder inomhus samtidigt som den avlägsnar fukt från omgivande luft. Den använder mindre energi än en torktumlare och förhindrar kondens på fönster och väggar. Förvänta dig torktider liknande utomhus torkning i varmt väder.',
|
|
41
41
|
},
|
|
42
42
|
];
|
|
43
43
|
|
|
44
44
|
const howToData = [
|
|
45
45
|
{
|
|
46
46
|
name: 'Ange rumsstorlek',
|
|
47
|
-
text: 'Skriv in golvytan
|
|
47
|
+
text: 'Skriv in golvytan på rummet i kvadratmeter. Kalkylatorn förutsätter en standard takhöjd på 2,5 meter för att uppskatta total luftvolym.',
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
name: '
|
|
51
|
-
text: 'Mata in aktuell rumstemperatur i grader Celsius. Varmare luft
|
|
50
|
+
name: 'Ställ in temperatur',
|
|
51
|
+
text: 'Mata in aktuell rumstemperatur i grader Celsius. Varmare luft håller mer fukt, så temperaturen påverkar direkt hur mycket vatten som måste avlägsnas.',
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
|
-
name: '
|
|
55
|
-
text: '
|
|
54
|
+
name: 'Välj aktuell luftfuktighet',
|
|
55
|
+
text: 'Använd komfortreglaget eller numerisk inmatning för att ställa in aktuell procent relativ luftfuktighet. Värden över 60 procent markeras i varningsfärger.',
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
|
-
name: '
|
|
59
|
-
text: '
|
|
58
|
+
name: 'Välj målluftfuktighet',
|
|
59
|
+
text: 'Ställ in önskad relativ luftfuktighet. 50 procent rekommenderas för komfort och mögelförebyggande. 40 procent är idealiskt för allergiker.',
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
name: 'Mata in avfuktarkapacitet',
|
|
63
|
-
text: 'Ange avfuktarens kapacitet i liter per dag. Detta
|
|
63
|
+
text: 'Ange avfuktarens kapacitet i liter per dag. Detta står vanligtvis på framsidans etikett eller i bruksanvisningen.',
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
name: 'Granska resultat',
|
|
67
|
-
text: '
|
|
67
|
+
text: 'Läs vattenavlagsningssimuleringen, drifttidsuppskattningen och mögelriskbannern för att besluta hur länge du ska köra din apparat.',
|
|
68
68
|
},
|
|
69
69
|
];
|
|
70
70
|
|
|
@@ -112,45 +112,45 @@ export const content: ToolLocaleContent<HumidityCalculatorUI> = {
|
|
|
112
112
|
seo: [
|
|
113
113
|
{
|
|
114
114
|
type: 'title',
|
|
115
|
-
text: 'Det dolda vattnet i dina
|
|
115
|
+
text: 'Det dolda vattnet i dina väggar',
|
|
116
116
|
level: 2,
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
type: 'paragraph',
|
|
120
|
-
html: 'De flesta
|
|
120
|
+
html: 'De flesta husägare inser aldrig att fuktig luft inte bara är obekväm, utan också dyr och farlig. Ett enda fuktigt rum kan hålla flera liter osynlig vattenånga. Med tiden kondenserar denna fukt på kalla ytor, ger näring åt mögelkolonier och försämrar puts, färg och timmer. Att förstå exakt hur mycket vatten som måste avlägsnas och hur lång tid det tar är det första steget för att skydda ditt hem och din hälsa.',
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
type: 'stats',
|
|
124
124
|
items: [
|
|
125
125
|
{ value: '50%', label: 'Ideal inomhusluftfuktighet', icon: 'mdi:water-percent' },
|
|
126
126
|
{ value: '8h', label: 'Genomsnittlig daglig drifttid', icon: 'mdi:timer-outline' },
|
|
127
|
-
{ value: '70%', label: '
|
|
127
|
+
{ value: '70%', label: 'Mögelriskgräns', icon: 'mdi:alert-outline' },
|
|
128
128
|
],
|
|
129
129
|
columns: 3,
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'title',
|
|
133
|
-
text: '
|
|
133
|
+
text: 'Varför relativ luftfuktighet spelar roll',
|
|
134
134
|
level: 3,
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
type: 'paragraph',
|
|
138
|
-
html: 'Relativ luftfuktighet
|
|
138
|
+
html: 'Relativ luftfuktighet är inte mängden vatten i luften, det är procentandelen vatten som luften håller i förhållande till maximalt vad den skulle kunna hålla vid den temperaturen. Varm luft är som en större svamp. Vid 30 grader Celsius kan luft hålla nästan dubbelt så mycket fukt som vid 15 grader Celsius. Det är därför ett rum känns klibbigt även efter att du har öppnat fönstren. Fuktigheten är fortfarande där, bara mindre synlig.',
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
type: 'comparative',
|
|
142
142
|
items: [
|
|
143
143
|
{
|
|
144
|
-
title: '
|
|
145
|
-
description: '
|
|
144
|
+
title: 'Hög luftfuktighet',
|
|
145
|
+
description: 'Över 60 procent relativ luftfuktighet. Risk för mögel, kvalster och kondensationsskador.',
|
|
146
146
|
icon: 'mdi:alert',
|
|
147
|
-
points: ['Kondens
|
|
147
|
+
points: ['Kondens på fönster och väggar', 'Instängda lukter och mikrobiell tillväxt', 'Ökad andningsirritation', 'Högre uppvärmningskostnader på grund av termisk ledningsförmåga hos fuktig luft'],
|
|
148
148
|
},
|
|
149
149
|
{
|
|
150
150
|
title: 'Optimal luftfuktighet',
|
|
151
|
-
description: 'Mellan 40 och 50 procent relativ luftfuktighet.
|
|
151
|
+
description: 'Mellan 40 och 50 procent relativ luftfuktighet. Bekvämt, hälsosamt och energieffektivt.',
|
|
152
152
|
icon: 'mdi:check-circle',
|
|
153
|
-
points: ['Ingen kondens
|
|
153
|
+
points: ['Ingen kondens på kalla ytor', 'Mögelsporer förblir vilande', 'Hud och andningskomfort', 'Bevarande av möbler och virke'],
|
|
154
154
|
},
|
|
155
155
|
],
|
|
156
156
|
columns: 2,
|
|
@@ -160,58 +160,58 @@ export const content: ToolLocaleContent<HumidityCalculatorUI> = {
|
|
|
160
160
|
variant: 'info',
|
|
161
161
|
title: 'Snabb fuktighetskontroll',
|
|
162
162
|
icon: 'mdi:clipboard-check',
|
|
163
|
-
badge: '
|
|
164
|
-
html: '<p style="margin:0">Kontrollera
|
|
163
|
+
badge: 'Åtgärd',
|
|
164
|
+
html: '<p style="margin:0">Kontrollera fönster efter kondensering varje morgon. Om droppar visas regelbundet är din luftfuktighet för hög. Kör en avfuktare i 12 timmar dagligen tills kondenseringen upphör. Flytta enheten till det fuktigaste rummet, vanligtvis köket, badrummet eller källaren. Töm tanken dagligen och rengör filtret varannan vecka.</p>',
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
type: 'title',
|
|
168
|
-
text: '
|
|
168
|
+
text: 'Rätt dimensionering av din avfuktare',
|
|
169
169
|
level: 3,
|
|
170
170
|
},
|
|
171
171
|
{
|
|
172
172
|
type: 'paragraph',
|
|
173
|
-
html: 'Ett vanligt misstag
|
|
173
|
+
html: 'Ett vanligt misstag är att köpa en avfuktare som är för liten för utrymmet. En 10 liter per dag maskin i en 60 kvadratmeter fuktig källare kommer att gå kontinuerligt utan att någonsin nå målluftfuktigheten. Använd denna kalkylator för att se den exakta avfuktningsvolymen ditt rum kräver. Om drifttidsuppskattningen överstiger 20 timmar per dag behöver du en enhet med större kapacitet eller bättre ventilation.',
|
|
174
174
|
},
|
|
175
175
|
{
|
|
176
176
|
type: 'summary',
|
|
177
|
-
title: 'Hur du
|
|
177
|
+
title: 'Hur du håller ditt hem torrt',
|
|
178
178
|
items: [
|
|
179
|
-
'
|
|
180
|
-
'
|
|
181
|
-
'
|
|
182
|
-
'
|
|
183
|
-
'
|
|
184
|
-
'
|
|
179
|
+
'Använd denna kalkylator för att fastställa den exakta vattenavfuktning som behövs för varje rum.',
|
|
180
|
+
'Underhåll inomhus relativ luftfuktighet mellan 40 och 50 procent för hälsa och komfort.',
|
|
181
|
+
'Kör avfuktaren tills mögelriskbannern blir grön.',
|
|
182
|
+
'Töm vattentanken innan den fylls för att förhindra automatisk avstängning.',
|
|
183
|
+
'Rengör filter regelbundet för att hålla luftflöde och avfuktningstakt på maximum.',
|
|
184
|
+
'Förbättra rumsventilationen vid sidan av avfuktning för snabbare resultat.',
|
|
185
185
|
],
|
|
186
186
|
},
|
|
187
187
|
],
|
|
188
188
|
ui: {
|
|
189
189
|
labelRoomSize: 'Rumsstorlek',
|
|
190
|
-
unitM2: '
|
|
190
|
+
unitM2: 'm²',
|
|
191
191
|
labelTemperature: 'Temperatur',
|
|
192
192
|
unitCelsius: '°C',
|
|
193
193
|
labelCurrentHumidity: 'Aktuell luftfuktighet',
|
|
194
|
-
labelTargetHumidity: '
|
|
194
|
+
labelTargetHumidity: 'Målluftfuktighet',
|
|
195
195
|
labelCapacity: 'Avfuktarkapacitet',
|
|
196
196
|
unitLitersDay: 'L/dag',
|
|
197
197
|
comfortDialTitle: 'Komfortzon',
|
|
198
198
|
comfortCurrent: 'Aktuell',
|
|
199
|
-
comfortTarget: '
|
|
199
|
+
comfortTarget: 'Mål',
|
|
200
200
|
tankTitle: 'Vatten i luften',
|
|
201
201
|
tankLiters: 'liter',
|
|
202
|
-
runtimeTitle: '
|
|
202
|
+
runtimeTitle: 'Beräknad drifttid',
|
|
203
203
|
runtimeUnitH: 't',
|
|
204
204
|
runtimeUnitM: 'm',
|
|
205
|
-
moldRiskTitle: '
|
|
206
|
-
moldRiskHigh: '
|
|
207
|
-
moldRiskMedium: '
|
|
208
|
-
moldRiskLow: '
|
|
209
|
-
extractionLabel: 'att
|
|
210
|
-
tipEnergy: 'Att
|
|
211
|
-
tipMold: 'Att
|
|
205
|
+
moldRiskTitle: 'Mögelrisk',
|
|
206
|
+
moldRiskHigh: 'Hög risk',
|
|
207
|
+
moldRiskMedium: 'Måttlig risk',
|
|
208
|
+
moldRiskLow: 'Låg risk',
|
|
209
|
+
extractionLabel: 'att avlägsna',
|
|
210
|
+
tipEnergy: 'Att köra din avfuktare under låglasttimmar kan sänka elräkningen avsevärt.',
|
|
211
|
+
tipMold: 'Att hålla luftfuktigheten under 50 procent förhindrar att mögelsporer gror på ytor.',
|
|
212
212
|
unitPercent: '%',
|
|
213
|
-
badgeHigh: '
|
|
214
|
-
badgeMedium: '
|
|
215
|
-
badgeLow: '
|
|
213
|
+
badgeHigh: 'Hög',
|
|
214
|
+
badgeMedium: 'Måttlig',
|
|
215
|
+
badgeLow: 'Låg',
|
|
216
216
|
},
|
|
217
217
|
};
|
|
@@ -20,7 +20,7 @@ const faqData = [
|
|
|
20
20
|
'Depende del Throw Ratio de tu proyector. Con un ratio estándar de 1.5:1 necesitarías unos 3.3m. Con un proyector de tiro corto (Short Throw) podrías lograrlo a menos de 1m.',
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
question: '¿Qué diferencia hay entre 16
|
|
23
|
+
question: '¿Qué diferencia hay entre el formato 16/9 y el 4/3?',
|
|
24
24
|
answer:
|
|
25
25
|
'16:9 es el formato panorámico para películas y series modernas. 4:3 es el formato clásico para presentaciones y retroproyectores. Elegir el correcto evita bordes negros excesivos.',
|
|
26
26
|
},
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
border: 1px solid var(--border-color);
|
|
27
27
|
color: var(--text-main);
|
|
28
28
|
position: relative;
|
|
29
|
+
min-width: 0;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
@media (min-width: 768px) {
|
|
@@ -43,6 +44,7 @@
|
|
|
43
44
|
display: flex;
|
|
44
45
|
flex-direction: column;
|
|
45
46
|
gap: 20px;
|
|
47
|
+
min-width: 0;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
@media (min-width: 768px) {
|
|
@@ -63,6 +65,7 @@
|
|
|
63
65
|
gap: 28px;
|
|
64
66
|
padding: 40px 32px;
|
|
65
67
|
min-height: 360px;
|
|
68
|
+
min-width: 0;
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
.tile-section-title {
|
|
@@ -77,6 +80,7 @@
|
|
|
77
80
|
.tile-unit-toggle {
|
|
78
81
|
display: flex;
|
|
79
82
|
gap: 8px;
|
|
83
|
+
flex-wrap: wrap;
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
.tile-unit-btn {
|
|
@@ -89,6 +93,7 @@
|
|
|
89
93
|
font-weight: 700;
|
|
90
94
|
cursor: pointer;
|
|
91
95
|
transition: all 0.2s;
|
|
96
|
+
min-width: 0;
|
|
92
97
|
}
|
|
93
98
|
|
|
94
99
|
.tile-unit-btn:hover {
|
|
@@ -120,11 +125,13 @@
|
|
|
120
125
|
display: flex;
|
|
121
126
|
align-items: baseline;
|
|
122
127
|
gap: 8px;
|
|
128
|
+
min-width: 0;
|
|
123
129
|
}
|
|
124
130
|
|
|
125
131
|
.tile-number-input {
|
|
126
|
-
width:
|
|
127
|
-
|
|
132
|
+
width: min(100%, 120px);
|
|
133
|
+
min-width: 0;
|
|
134
|
+
font-size: clamp(1.8rem, 8vw, 2.5rem);
|
|
128
135
|
font-weight: 900;
|
|
129
136
|
color: var(--text-main);
|
|
130
137
|
background: transparent;
|
|
@@ -140,8 +147,9 @@
|
|
|
140
147
|
}
|
|
141
148
|
|
|
142
149
|
.tile-price-input {
|
|
143
|
-
width:
|
|
144
|
-
|
|
150
|
+
width: min(100%, 120px);
|
|
151
|
+
min-width: 0;
|
|
152
|
+
font-size: clamp(1.25rem, 6vw, 1.5rem);
|
|
145
153
|
font-weight: 900;
|
|
146
154
|
color: var(--text-main);
|
|
147
155
|
background: transparent;
|
|
@@ -159,6 +167,7 @@
|
|
|
159
167
|
.tile-number-unit {
|
|
160
168
|
font-size: 0.875rem;
|
|
161
169
|
color: var(--text-muted);
|
|
170
|
+
overflow-wrap: anywhere;
|
|
162
171
|
}
|
|
163
172
|
|
|
164
173
|
.tile-slider {
|
|
@@ -186,6 +195,7 @@
|
|
|
186
195
|
.tile-pattern-toggle {
|
|
187
196
|
display: flex;
|
|
188
197
|
gap: 8px;
|
|
198
|
+
flex-wrap: wrap;
|
|
189
199
|
}
|
|
190
200
|
|
|
191
201
|
.tile-pattern-btn {
|
|
@@ -198,6 +208,7 @@
|
|
|
198
208
|
font-weight: 700;
|
|
199
209
|
cursor: pointer;
|
|
200
210
|
transition: all 0.2s;
|
|
211
|
+
min-width: 0;
|
|
201
212
|
}
|
|
202
213
|
|
|
203
214
|
.tile-pattern-btn:hover {
|
|
@@ -280,10 +291,12 @@
|
|
|
280
291
|
width: 100%;
|
|
281
292
|
max-width: 320px;
|
|
282
293
|
justify-content: center;
|
|
294
|
+
min-width: 0;
|
|
283
295
|
}
|
|
284
296
|
|
|
285
297
|
.tile-stat {
|
|
286
298
|
text-align: center;
|
|
299
|
+
min-width: 0;
|
|
287
300
|
}
|
|
288
301
|
|
|
289
302
|
.tile-stat-label {
|
|
@@ -300,6 +313,7 @@
|
|
|
300
313
|
font-weight: 700;
|
|
301
314
|
color: var(--text-main);
|
|
302
315
|
margin: 0;
|
|
316
|
+
overflow-wrap: anywhere;
|
|
303
317
|
}
|
|
304
318
|
|
|
305
319
|
.tile-stat-divider {
|
|
@@ -328,6 +342,7 @@
|
|
|
328
342
|
letter-spacing: 0.1em;
|
|
329
343
|
color: var(--text-muted);
|
|
330
344
|
margin: 0;
|
|
345
|
+
min-width: 0;
|
|
331
346
|
}
|
|
332
347
|
|
|
333
348
|
.tile-waste-value {
|
|
@@ -335,6 +350,76 @@
|
|
|
335
350
|
font-weight: 900;
|
|
336
351
|
color: var(--tile-p);
|
|
337
352
|
margin: 0;
|
|
353
|
+
margin-left: auto;
|
|
354
|
+
overflow-wrap: anywhere;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
@media (max-width: 520px) {
|
|
358
|
+
.tile-wrapper {
|
|
359
|
+
padding: 0.5rem 0;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
.tile-card {
|
|
363
|
+
width: calc(100% - 16px);
|
|
364
|
+
border-radius: 20px;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.tile-left {
|
|
368
|
+
padding: 20px 16px;
|
|
369
|
+
gap: 16px;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.tile-right {
|
|
373
|
+
padding: 24px 16px;
|
|
374
|
+
gap: 20px;
|
|
375
|
+
min-height: 320px;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.tile-unit-btn,
|
|
379
|
+
.tile-pattern-btn {
|
|
380
|
+
flex: 1 1 auto;
|
|
381
|
+
padding: 8px 10px;
|
|
382
|
+
border-radius: 10px;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.tile-field {
|
|
386
|
+
gap: 8px;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
.tile-svg-wrap {
|
|
390
|
+
max-width: 100%;
|
|
391
|
+
border-radius: 12px;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
.tile-result-badge {
|
|
395
|
+
width: 100%;
|
|
396
|
+
text-align: center;
|
|
397
|
+
line-height: 1.35;
|
|
398
|
+
border-radius: 10px;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
.tile-stats {
|
|
402
|
+
display: grid;
|
|
403
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
404
|
+
gap: 12px;
|
|
405
|
+
max-width: none;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
.tile-stat {
|
|
409
|
+
padding: 10px;
|
|
410
|
+
border: 1px solid var(--border-color);
|
|
411
|
+
border-radius: 12px;
|
|
412
|
+
background: var(--bg-surface);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
.tile-stat-divider {
|
|
416
|
+
display: none;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.tile-waste-row {
|
|
420
|
+
max-width: none;
|
|
421
|
+
align-items: flex-start;
|
|
422
|
+
}
|
|
338
423
|
}
|
|
339
424
|
|
|
340
425
|
@keyframes tile-pulse-success {
|
|
@@ -401,4 +486,4 @@
|
|
|
401
486
|
transform: translate(var(--tx), var(--ty)) scale(0);
|
|
402
487
|
opacity: 0;
|
|
403
488
|
}
|
|
404
|
-
}
|
|
489
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { waterSoftener } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await waterSoftener.i18n[locale]?.();
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
{content && <SharedBibliography links={content.bibliography} />}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const bibliography = [
|
|
2
|
+
{
|
|
3
|
+
name: 'WQA: Water Hardness and Softening Basics',
|
|
4
|
+
url: 'https://wqa.org/resources/getting-smart-with-softeners/',
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
name: 'U.S. EPA: Home Water Treatment Facts',
|
|
8
|
+
url: 'https://www.epa.gov/ground-water-and-drinking-water/home-drinking-water-filtration-fact-sheet',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'Energy.gov: Water Heating and Hard Water Scaling',
|
|
12
|
+
url: 'https://www.energy.gov/energysaver/purchasing-and-maintaining-water-softener',
|
|
13
|
+
},
|
|
14
|
+
];
|