@jjlmoya/utils-motor 1.1.0 → 1.2.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 (39) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +4 -1
  4. package/src/index.ts +5 -0
  5. package/src/tests/i18n_coverage.test.ts +5 -3
  6. package/src/tests/locale_completeness.test.ts +1 -1
  7. package/src/tests/tool_validation.test.ts +1 -2
  8. package/src/tool/realFuelConsumptionCalculator/bibliography.astro +6 -0
  9. package/src/tool/realFuelConsumptionCalculator/bibliography.ts +12 -0
  10. package/src/tool/realFuelConsumptionCalculator/component.astro +111 -0
  11. package/src/tool/realFuelConsumptionCalculator/controller.ts +175 -0
  12. package/src/tool/realFuelConsumptionCalculator/dom-views.ts +132 -0
  13. package/src/tool/realFuelConsumptionCalculator/entry.ts +30 -0
  14. package/src/tool/realFuelConsumptionCalculator/evaluator.ts +15 -0
  15. package/src/tool/realFuelConsumptionCalculator/i18n/de.ts +119 -0
  16. package/src/tool/realFuelConsumptionCalculator/i18n/en.ts +119 -0
  17. package/src/tool/realFuelConsumptionCalculator/i18n/es.ts +119 -0
  18. package/src/tool/realFuelConsumptionCalculator/i18n/factory.ts +110 -0
  19. package/src/tool/realFuelConsumptionCalculator/i18n/fr.ts +119 -0
  20. package/src/tool/realFuelConsumptionCalculator/i18n/id.ts +119 -0
  21. package/src/tool/realFuelConsumptionCalculator/i18n/it.ts +119 -0
  22. package/src/tool/realFuelConsumptionCalculator/i18n/ja.ts +119 -0
  23. package/src/tool/realFuelConsumptionCalculator/i18n/ko.ts +119 -0
  24. package/src/tool/realFuelConsumptionCalculator/i18n/nl.ts +119 -0
  25. package/src/tool/realFuelConsumptionCalculator/i18n/pl.ts +119 -0
  26. package/src/tool/realFuelConsumptionCalculator/i18n/pt.ts +119 -0
  27. package/src/tool/realFuelConsumptionCalculator/i18n/ru.ts +119 -0
  28. package/src/tool/realFuelConsumptionCalculator/i18n/sv.ts +119 -0
  29. package/src/tool/realFuelConsumptionCalculator/i18n/tr.ts +119 -0
  30. package/src/tool/realFuelConsumptionCalculator/i18n/zh.ts +119 -0
  31. package/src/tool/realFuelConsumptionCalculator/index.ts +10 -0
  32. package/src/tool/realFuelConsumptionCalculator/logic.test.ts +72 -0
  33. package/src/tool/realFuelConsumptionCalculator/logic.ts +142 -0
  34. package/src/tool/realFuelConsumptionCalculator/real-fuel-consumption-calculator.css +692 -0
  35. package/src/tool/realFuelConsumptionCalculator/seo.astro +15 -0
  36. package/src/tool/realFuelConsumptionCalculator/storage.ts +54 -0
  37. package/src/tool/realFuelConsumptionCalculator/ui.ts +72 -0
  38. package/src/tools.ts +2 -1
  39. package/src/tests/faq_count.test.ts +0 -19
@@ -0,0 +1,692 @@
1
+ .rfc-shell {
2
+ --rfc-ink: #17211e;
3
+ --rfc-muted: #66736d;
4
+ --rfc-paper: #f5f0e7;
5
+ --rfc-panel: #fffaf2;
6
+ --rfc-line: #d8cdbc;
7
+ --rfc-teal: #159c91;
8
+ --rfc-red: #d85b48;
9
+ --rfc-blue: #597cc4;
10
+ --rfc-gold: #dfa83e;
11
+ --rfc-shadow: #17211e1a;
12
+
13
+ container-type: inline-size;
14
+ color: var(--rfc-ink);
15
+ }
16
+
17
+ .theme-dark .rfc-shell {
18
+ --rfc-ink: #f5f0e7;
19
+ --rfc-muted: #aab7b0;
20
+ --rfc-paper: #18221f;
21
+ --rfc-panel: #202c28;
22
+ --rfc-line: #43534b;
23
+ --rfc-shadow: #0008;
24
+ }
25
+
26
+ .rfc-console {
27
+ overflow: visible;
28
+ border: 1px solid var(--rfc-line);
29
+ border-radius: 1.6rem;
30
+ background: var(--rfc-paper);
31
+ box-shadow: 0 1.5rem 4rem var(--rfc-shadow);
32
+ }
33
+
34
+ .rfc-toolbar,
35
+ .rfc-choice-group,
36
+ .rfc-currency-picker,
37
+ .rfc-result-lead,
38
+ .rfc-comparison-heading,
39
+ .rfc-setting-row,
40
+ .rfc-footer {
41
+ display: flex;
42
+ align-items: center;
43
+ }
44
+
45
+ .rfc-toolbar {
46
+ position: relative;
47
+ justify-content: space-between;
48
+ flex-wrap: wrap;
49
+ gap: 1rem;
50
+ padding: 1.1rem clamp(1.1rem, 4vw, 2.4rem);
51
+ border-bottom: 1px solid var(--rfc-line);
52
+ }
53
+
54
+ .rfc-choice-group,
55
+ .rfc-currency-picker {
56
+ gap: 0.45rem;
57
+ }
58
+
59
+ .rfc-choice-group > span,
60
+ .rfc-currency-picker > span,
61
+ .rfc-eyebrow,
62
+ .rfc-field > span,
63
+ .rfc-field > small,
64
+ .rfc-comparison-heading > span,
65
+ .rfc-setting-heading > span,
66
+ .rfc-card-cost span,
67
+ .rfc-result-cost span,
68
+ .rfc-footer {
69
+ color: var(--rfc-muted);
70
+ font-size: 0.68rem;
71
+ font-weight: 850;
72
+ letter-spacing: 0.07em;
73
+ text-transform: uppercase;
74
+ }
75
+
76
+ .rfc-choice-group > span,
77
+ .rfc-currency-picker > span {
78
+ margin-right: 0.3rem;
79
+ }
80
+
81
+ .rfc-choice-group button,
82
+ .rfc-currency-trigger,
83
+ .rfc-currency-menu button,
84
+ .rfc-reset {
85
+ border: 1px solid var(--rfc-line);
86
+ color: var(--rfc-ink);
87
+ background: transparent;
88
+ font: inherit;
89
+ font-size: 0.76rem;
90
+ font-weight: 800;
91
+ cursor: pointer;
92
+ }
93
+
94
+ .rfc-choice-group button,
95
+ .rfc-currency-trigger {
96
+ padding: 0.55rem 0.82rem;
97
+ border-radius: 999px;
98
+ }
99
+
100
+ .rfc-choice-group button[aria-pressed="true"] {
101
+ border-color: var(--rfc-ink);
102
+ color: var(--rfc-paper);
103
+ background: var(--rfc-ink);
104
+ }
105
+
106
+ .rfc-currency-picker {
107
+ position: relative;
108
+ }
109
+
110
+ .rfc-currency-trigger {
111
+ display: inline-flex;
112
+ align-items: center;
113
+ gap: 0.7rem;
114
+ min-width: 7.2rem;
115
+ justify-content: space-between;
116
+ background: var(--rfc-panel);
117
+ }
118
+
119
+ .rfc-currency-chevron {
120
+ width: 0.45rem;
121
+ height: 0.45rem;
122
+ flex: 0 0 auto;
123
+ border-right: 1.5px solid currentcolor;
124
+ border-bottom: 1.5px solid currentcolor;
125
+ transform: translateY(-0.12rem) rotate(45deg);
126
+ transition: transform 180ms ease;
127
+ }
128
+
129
+ .rfc-currency-trigger[aria-expanded="true"] .rfc-currency-chevron {
130
+ transform: translateY(0.12rem) rotate(225deg);
131
+ }
132
+
133
+ .rfc-currency-rate {
134
+ color: var(--rfc-muted);
135
+ font-size: 0.62rem;
136
+ white-space: nowrap;
137
+ }
138
+
139
+ .rfc-currency-menu {
140
+ position: absolute;
141
+ z-index: 5;
142
+ top: calc(100% + 0.5rem);
143
+ right: 0;
144
+ display: grid;
145
+ grid-template-columns: repeat(3, minmax(4rem, 1fr));
146
+ gap: 0.25rem;
147
+ width: min(16rem, 80vw);
148
+ padding: 0.45rem;
149
+ border: 1px solid var(--rfc-line);
150
+ border-radius: 0.8rem;
151
+ background: var(--rfc-panel);
152
+ box-shadow: 0 0.8rem 2rem var(--rfc-shadow);
153
+ }
154
+
155
+ .rfc-currency-menu[hidden] {
156
+ display: none;
157
+ }
158
+
159
+ .rfc-currency-menu button {
160
+ padding: 0.55rem 0.35rem;
161
+ border: 0;
162
+ border-radius: 0.45rem;
163
+ }
164
+
165
+ .rfc-currency-menu button:hover,
166
+ .rfc-currency-menu button[aria-selected="true"] {
167
+ color: var(--rfc-paper);
168
+ background: var(--rfc-ink);
169
+ }
170
+
171
+ .rfc-reset {
172
+ padding: 0.45rem 0.5rem;
173
+ border: 0;
174
+ color: var(--rfc-muted);
175
+ }
176
+
177
+ .rfc-intake,
178
+ .rfc-results,
179
+ .rfc-details {
180
+ padding: 1.8rem clamp(1.1rem, 4vw, 2.4rem);
181
+ }
182
+
183
+ .rfc-section-heading {
184
+ margin-bottom: 1rem;
185
+ }
186
+
187
+ .rfc-section-heading h2,
188
+ .rfc-comparison-heading h2 {
189
+ margin: 0.25rem 0 0;
190
+ font-size: clamp(1.15rem, 2vw, 1.55rem);
191
+ letter-spacing: -0.04em;
192
+ }
193
+
194
+ .rfc-eyebrow {
195
+ margin: 0;
196
+ color: var(--rfc-teal);
197
+ font-size: 0.66rem;
198
+ }
199
+
200
+ .rfc-main-fields {
201
+ display: grid;
202
+ grid-template-columns: repeat(3, minmax(0, 1fr));
203
+ gap: 0.8rem;
204
+ }
205
+
206
+ .rfc-field {
207
+ display: grid;
208
+ gap: 0.42rem;
209
+ min-width: 0;
210
+ padding: 1.05rem;
211
+ border: 1px solid var(--rfc-line);
212
+ border-radius: 1rem;
213
+ background: var(--rfc-panel);
214
+ }
215
+
216
+ .rfc-field > span {
217
+ color: var(--rfc-ink);
218
+ letter-spacing: 0.03em;
219
+ }
220
+
221
+ .rfc-field > small {
222
+ min-height: 2.1em;
223
+ font-size: 0.72rem;
224
+ font-weight: 550;
225
+ letter-spacing: 0;
226
+ line-height: 1.4;
227
+ text-transform: none;
228
+ }
229
+
230
+ .rfc-field strong {
231
+ display: flex;
232
+ align-items: baseline;
233
+ gap: 0.35rem;
234
+ font-size: 1.35rem;
235
+ }
236
+
237
+ .rfc-field strong input[type="number"],
238
+ .rfc-setting-row input[type="number"] {
239
+ min-width: 0;
240
+ border: 0;
241
+ color: var(--rfc-ink);
242
+ background: transparent;
243
+ font: inherit;
244
+ font-weight: 850;
245
+ }
246
+
247
+ .rfc-field strong input[type="number"] {
248
+ width: 7rem;
249
+ }
250
+
251
+ .rfc-field strong em,
252
+ .rfc-setting-row em {
253
+ color: var(--rfc-muted);
254
+ font-size: 0.72rem;
255
+ font-style: normal;
256
+ font-weight: 750;
257
+ white-space: nowrap;
258
+ }
259
+
260
+ .rfc-field input[type="range"] {
261
+ width: 100%;
262
+ accent-color: var(--rfc-teal);
263
+ }
264
+
265
+ .rfc-price-field {
266
+ border-color: var(--rfc-teal);
267
+ box-shadow: inset 0 0 0 1px var(--rfc-teal);
268
+ }
269
+
270
+ .rfc-results {
271
+ border-top: 1px solid var(--rfc-line);
272
+ background: var(--rfc-panel);
273
+ }
274
+
275
+ .rfc-result-lead {
276
+ flex-wrap: wrap;
277
+ gap: 1.5rem 2.5rem;
278
+ padding-bottom: 1.7rem;
279
+ }
280
+
281
+ .rfc-result-lead > div:first-child {
282
+ display: grid;
283
+ gap: 0.2rem;
284
+ min-width: min(100%, 16rem);
285
+ }
286
+
287
+ .rfc-result-lead > div:first-child strong {
288
+ font-size: clamp(2rem, 5vw, 3.7rem);
289
+ letter-spacing: -0.075em;
290
+ line-height: 1;
291
+ }
292
+
293
+ .rfc-result-lead > div:first-child span {
294
+ color: var(--rfc-muted);
295
+ font-size: 0.78rem;
296
+ font-weight: 750;
297
+ }
298
+
299
+ .rfc-result-cost {
300
+ display: grid;
301
+ gap: 0.25rem;
302
+ margin-left: auto;
303
+ }
304
+
305
+ .rfc-result-cost strong {
306
+ color: var(--rfc-red);
307
+ font-size: 1.75rem;
308
+ letter-spacing: -0.06em;
309
+ }
310
+
311
+ .rfc-result-cost small {
312
+ color: var(--rfc-muted);
313
+ font-size: 0.75rem;
314
+ }
315
+
316
+ .rfc-status {
317
+ flex: 1 1 100%;
318
+ margin: 0;
319
+ padding: 0.75rem 0.9rem;
320
+ border-left: 0.25rem solid var(--rfc-gold);
321
+ color: var(--rfc-muted);
322
+ background: color-mix(in srgb, var(--rfc-gold) 10%, transparent);
323
+ font-size: 0.8rem;
324
+ line-height: 1.45;
325
+ }
326
+
327
+ [data-status="better"] .rfc-status {
328
+ border-color: var(--rfc-teal);
329
+ background: color-mix(in srgb, var(--rfc-teal) 10%, transparent);
330
+ }
331
+
332
+ [data-status="higher"] .rfc-status {
333
+ border-color: var(--rfc-red);
334
+ background: color-mix(in srgb, var(--rfc-red) 10%, transparent);
335
+ }
336
+
337
+ .rfc-comparison-heading {
338
+ justify-content: space-between;
339
+ gap: 1rem;
340
+ padding: 1.7rem 1.2rem 1.25rem;
341
+ background: linear-gradient(135deg, color-mix(in srgb, var(--rfc-teal) 8%, transparent), transparent 55%);
342
+ }
343
+
344
+ .rfc-comparison-heading > span,
345
+ .rfc-setting-heading > span {
346
+ max-width: 18rem;
347
+ font-size: 0.72rem;
348
+ font-weight: 550;
349
+ letter-spacing: 0;
350
+ line-height: 1.4;
351
+ text-align: right;
352
+ text-transform: none;
353
+ }
354
+
355
+ .rfc-comparison-heading h2 {
356
+ position: relative;
357
+ padding-bottom: 0.35rem;
358
+ }
359
+
360
+ .rfc-comparison-heading h2::after {
361
+ position: absolute;
362
+ bottom: 0;
363
+ left: 0;
364
+ width: 3.5rem;
365
+ height: 0.18rem;
366
+ border-radius: 999px;
367
+ background: linear-gradient(90deg, var(--rfc-teal), var(--rfc-gold));
368
+ content: '';
369
+ }
370
+
371
+ .rfc-comparison-box {
372
+ position: relative;
373
+ overflow: hidden;
374
+ border: 1px solid var(--rfc-line);
375
+ border-radius: 1.1rem;
376
+ background: var(--rfc-paper);
377
+ box-shadow: 0 0.8rem 2rem var(--rfc-shadow);
378
+ }
379
+
380
+ .rfc-comparison-box::before {
381
+ position: absolute;
382
+ top: 0;
383
+ right: 12%;
384
+ left: 12%;
385
+ height: 0.25rem;
386
+ border-radius: 0 0 999px 999px;
387
+ background: linear-gradient(90deg, var(--rfc-red), var(--rfc-gold), var(--rfc-blue));
388
+ content: '';
389
+ }
390
+
391
+ .rfc-fuel-dot {
392
+ display: inline-block;
393
+ width: 0.65rem;
394
+ height: 0.65rem;
395
+ flex: 0 0 auto;
396
+ border-radius: 50%;
397
+ background: var(--rfc-teal);
398
+ }
399
+
400
+ .rfc-dot-gasoline { background: var(--rfc-red); }
401
+ .rfc-dot-diesel { background: var(--rfc-gold); }
402
+ .rfc-dot-electric { background: var(--rfc-blue); }
403
+
404
+ .rfc-price-table {
405
+ display: grid;
406
+ }
407
+
408
+ .rfc-price-row {
409
+ --rfc-bar: 0%;
410
+
411
+ display: grid;
412
+ grid-template-columns: minmax(7.5rem, 0.7fr) minmax(12rem, 2fr) minmax(8.5rem, 0.7fr);
413
+ align-items: center;
414
+ gap: 1rem;
415
+ padding: 1rem 1.2rem;
416
+ border-top: 1px solid var(--rfc-line);
417
+ }
418
+
419
+ .rfc-price-row:first-child {
420
+ border-top: 0;
421
+ }
422
+
423
+ .rfc-price-row[data-ready="true"] {
424
+ background: color-mix(in srgb, var(--rfc-teal) 4%, transparent);
425
+ }
426
+
427
+ .rfc-price-row[data-rank="cheapest"] {
428
+ background: color-mix(in srgb, var(--rfc-teal) 11%, var(--rfc-paper));
429
+ box-shadow: inset 0.28rem 0 0 var(--rfc-teal);
430
+ }
431
+
432
+ .rfc-row-identity {
433
+ display: grid;
434
+ grid-template-columns: auto 1fr;
435
+ align-items: center;
436
+ gap: 0.5rem;
437
+ }
438
+
439
+ .rfc-row-identity h3 {
440
+ margin: 0;
441
+ font-size: 0.9rem;
442
+ }
443
+
444
+ .rfc-row-identity small {
445
+ grid-column: 2;
446
+ color: var(--rfc-muted);
447
+ font-size: 0.68rem;
448
+ }
449
+
450
+ .rfc-row-bar-area {
451
+ display: grid;
452
+ grid-template-columns: minmax(0, 1fr) auto;
453
+ align-items: center;
454
+ gap: 0.8rem;
455
+ }
456
+
457
+ .rfc-row-bar-track {
458
+ height: 1.45rem;
459
+ overflow: hidden;
460
+ border-radius: 999px;
461
+ background: color-mix(in srgb, var(--rfc-line) 45%, transparent);
462
+ }
463
+
464
+ .rfc-row-bar {
465
+ width: var(--rfc-bar);
466
+ height: 100%;
467
+ border-radius: inherit;
468
+ background: linear-gradient(90deg, var(--rfc-teal), color-mix(in srgb, var(--rfc-teal) 55%, var(--rfc-paper)));
469
+ transition: width 350ms ease;
470
+ }
471
+
472
+ .rfc-price-row[data-rank="cheapest"] .rfc-row-bar {
473
+ box-shadow: 0 0 0.9rem color-mix(in srgb, var(--rfc-teal) 45%, transparent);
474
+ }
475
+
476
+ [data-rfc-comparison-row="gasoline"] .rfc-row-bar { background: linear-gradient(90deg, var(--rfc-red), #ef9a62); }
477
+ [data-rfc-comparison-row="diesel"] .rfc-row-bar { background: linear-gradient(90deg, var(--rfc-gold), #f0d27d); }
478
+ [data-rfc-comparison-row="electric"] .rfc-row-bar { background: linear-gradient(90deg, var(--rfc-blue), #9cb5ec); }
479
+
480
+ .rfc-row-cost {
481
+ display: grid;
482
+ gap: 0.15rem;
483
+ min-width: 4.6rem;
484
+ text-align: right;
485
+ }
486
+
487
+ .rfc-row-cost small,
488
+ .rfc-row-consumption > small {
489
+ color: var(--rfc-muted);
490
+ font-size: 0.6rem;
491
+ font-weight: 850;
492
+ letter-spacing: 0.06em;
493
+ text-transform: uppercase;
494
+ }
495
+
496
+ .rfc-row-cost strong {
497
+ color: var(--rfc-ink);
498
+ font-size: 1rem;
499
+ }
500
+
501
+ .rfc-row-consumption {
502
+ display: grid;
503
+ gap: 0.15rem;
504
+ justify-items: start;
505
+ }
506
+
507
+ .rfc-row-consumption > div {
508
+ display: flex;
509
+ align-items: baseline;
510
+ gap: 0.35rem;
511
+ }
512
+
513
+ .rfc-row-consumption strong {
514
+ font-size: 1.2rem;
515
+ letter-spacing: -0.04em;
516
+ }
517
+
518
+ .rfc-row-consumption span {
519
+ color: var(--rfc-muted);
520
+ font-size: 0.68rem;
521
+ white-space: nowrap;
522
+ }
523
+
524
+ .rfc-comparison-punchline {
525
+ margin: 0;
526
+ padding: 0.9rem 1.2rem;
527
+ border-top: 1px solid var(--rfc-line);
528
+ color: var(--rfc-ink);
529
+ background: color-mix(in srgb, var(--rfc-gold) 11%, transparent);
530
+ font-size: 0.76rem;
531
+ font-weight: 800;
532
+ }
533
+
534
+ .rfc-comparison-punchline::before {
535
+ margin-right: 0.45rem;
536
+ color: var(--rfc-gold);
537
+ content: '★';
538
+ }
539
+
540
+ .rfc-details {
541
+ border-top: 1px solid var(--rfc-line);
542
+ }
543
+
544
+ .rfc-details summary {
545
+ color: var(--rfc-ink);
546
+ font-size: 0.76rem;
547
+ font-weight: 850;
548
+ cursor: pointer;
549
+ }
550
+
551
+ .rfc-details-body {
552
+ display: grid;
553
+ grid-template-columns: minmax(14rem, 0.7fr) minmax(0, 1.3fr);
554
+ gap: 2rem;
555
+ padding-top: 1.2rem;
556
+ }
557
+
558
+ .rfc-setting-heading {
559
+ display: grid;
560
+ gap: 0.4rem;
561
+ margin-bottom: 0.7rem;
562
+ }
563
+
564
+ .rfc-setting-heading > span {
565
+ display: block;
566
+ text-align: left;
567
+ }
568
+
569
+ .rfc-setting-row {
570
+ gap: 0.7rem;
571
+ padding: 0.7rem 0;
572
+ border-top: 1px solid var(--rfc-line);
573
+ }
574
+
575
+ .rfc-setting-row > strong {
576
+ display: flex;
577
+ align-items: center;
578
+ gap: 0.45rem;
579
+ min-width: 5.6rem;
580
+ font-size: 0.78rem;
581
+ }
582
+
583
+ .rfc-setting-row label {
584
+ display: grid;
585
+ grid-template-columns: auto minmax(3rem, 5rem) auto;
586
+ align-items: center;
587
+ gap: 0.3rem;
588
+ min-width: 0;
589
+ }
590
+
591
+ .rfc-setting-row label > span {
592
+ color: var(--rfc-muted);
593
+ font-size: 0.65rem;
594
+ }
595
+
596
+ .rfc-setting-row input[type="number"] {
597
+ width: 100%;
598
+ padding: 0.2rem 0.15rem;
599
+ border-bottom: 1px solid var(--rfc-ink);
600
+ font-size: 0.82rem;
601
+ }
602
+
603
+ .rfc-footer {
604
+ flex-wrap: wrap;
605
+ justify-content: space-between;
606
+ gap: 0.6rem 1.4rem;
607
+ padding: 0 clamp(1.1rem, 4vw, 2.4rem) 1.5rem;
608
+ font-size: 0.63rem;
609
+ line-height: 1.45;
610
+ }
611
+
612
+ .rfc-footer b {
613
+ color: var(--rfc-ink);
614
+ font-weight: 750;
615
+ letter-spacing: 0;
616
+ text-transform: none;
617
+ }
618
+
619
+ @container (max-width: 48rem) {
620
+ .rfc-main-fields {
621
+ grid-template-columns: 1fr;
622
+ }
623
+
624
+ .rfc-price-row {
625
+ grid-template-columns: minmax(6.5rem, 0.65fr) minmax(9rem, 1.35fr);
626
+ }
627
+
628
+ .rfc-row-consumption {
629
+ grid-column: 2;
630
+ }
631
+
632
+ .rfc-details-body {
633
+ grid-template-columns: 1fr;
634
+ gap: 1rem;
635
+ }
636
+ }
637
+
638
+ @container (max-width: 36rem) {
639
+ .rfc-toolbar {
640
+ align-items: flex-start;
641
+ }
642
+
643
+ .rfc-choice-group {
644
+ flex-wrap: wrap;
645
+ }
646
+
647
+ .rfc-currency-picker {
648
+ order: 3;
649
+ width: 100%;
650
+ flex-wrap: wrap;
651
+ }
652
+
653
+ .rfc-currency-rate {
654
+ width: 100%;
655
+ padding-left: 0.2rem;
656
+ }
657
+
658
+ .rfc-currency-menu {
659
+ left: 0;
660
+ right: auto;
661
+ }
662
+
663
+ .rfc-result-cost {
664
+ margin-left: 0;
665
+ }
666
+
667
+ .rfc-comparison-heading {
668
+ align-items: flex-start;
669
+ flex-direction: column;
670
+ }
671
+
672
+ .rfc-comparison-heading > span {
673
+ text-align: left;
674
+ }
675
+
676
+ .rfc-setting-row {
677
+ align-items: flex-start;
678
+ flex-wrap: wrap;
679
+ }
680
+
681
+ .rfc-setting-row > strong {
682
+ width: 100%;
683
+ }
684
+
685
+ .rfc-setting-row label {
686
+ flex: 1 1 9rem;
687
+ }
688
+
689
+ .rfc-footer {
690
+ display: grid;
691
+ }
692
+ }
@@ -0,0 +1,15 @@
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { realFuelConsumptionCalculator } from './entry';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'en' } = Astro.props;
11
+ const loader = realFuelConsumptionCalculator.i18n[locale] ?? realFuelConsumptionCalculator.i18n.en;
12
+ const content = await loader?.();
13
+ ---
14
+
15
+ {content && <SEORenderer content={{ locale, sections: content.seo }} />}