@jjlmoya/utils-home 1.15.0 → 1.16.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.
@@ -256,340 +256,3 @@ function iBarH(val: number): number {
256
256
  init();
257
257
  </script>
258
258
 
259
- <style>
260
- .tc-wrapper {
261
- --tc-p: #f59e0b;
262
-
263
- width: 100%;
264
- padding: 1rem 0;
265
- }
266
-
267
- .tc-card {
268
- background: var(--bg-surface);
269
- width: calc(100% - 24px);
270
- max-width: 960px;
271
- margin: 0 auto;
272
- border-radius: 24px;
273
- overflow: hidden;
274
- display: flex;
275
- flex-direction: column;
276
- gap: 0;
277
- border: 1px solid var(--border-color);
278
- color: var(--text-main);
279
- }
280
-
281
- .tc-inputs {
282
- display: grid;
283
- grid-template-columns: 1fr;
284
- gap: 24px;
285
- padding: 32px;
286
- border-bottom: 1px solid var(--border-color);
287
- }
288
-
289
- @media (min-width: 640px) {
290
- .tc-inputs {
291
- grid-template-columns: 1fr 1fr;
292
- }
293
- }
294
-
295
- .tc-input-group {
296
- display: flex;
297
- flex-direction: column;
298
- gap: 10px;
299
- }
300
-
301
- .tc-label {
302
- font-size: 0.6875rem;
303
- font-weight: 700;
304
- text-transform: uppercase;
305
- letter-spacing: 0.1em;
306
- color: var(--tc-p);
307
- }
308
-
309
- .tc-slider {
310
- width: 100%;
311
- height: 6px;
312
- accent-color: var(--tc-p);
313
- cursor: pointer;
314
- border-radius: 9999px;
315
- }
316
-
317
- .tc-value-row {
318
- display: flex;
319
- align-items: baseline;
320
- gap: 6px;
321
- }
322
-
323
- .tc-value {
324
- font-size: 2rem;
325
- font-weight: 900;
326
- color: var(--text-main);
327
- line-height: 1;
328
- }
329
-
330
- .tc-unit {
331
- font-size: 0.8125rem;
332
- color: var(--text-muted);
333
- }
334
-
335
- .tc-results {
336
- display: grid;
337
- grid-template-columns: 1fr;
338
- gap: 16px;
339
- padding: 24px 32px;
340
- border-bottom: 1px solid var(--border-color);
341
- }
342
-
343
- @media (min-width: 640px) {
344
- .tc-results {
345
- grid-template-columns: 1fr 1fr;
346
- }
347
- }
348
-
349
- .tc-tariff-card {
350
- border-radius: 16px;
351
- padding: 20px;
352
- display: flex;
353
- flex-direction: column;
354
- gap: 12px;
355
- }
356
-
357
- .tc-market-card {
358
- background: rgba(245, 158, 11, 0.06);
359
- border: 1px solid rgba(245, 158, 11, 0.2);
360
- }
361
-
362
- .tc-free-card {
363
- background: rgba(14, 165, 233, 0.06);
364
- border: 1px solid rgba(14, 165, 233, 0.2);
365
- }
366
-
367
- .tc-tariff-label {
368
- font-size: 0.625rem;
369
- font-weight: 900;
370
- text-transform: uppercase;
371
- letter-spacing: 0.12em;
372
- padding: 4px 10px;
373
- border-radius: 9999px;
374
- align-self: flex-start;
375
- }
376
-
377
- .tc-market-label {
378
- background: #fbbf24;
379
- color: #78350f;
380
- }
381
-
382
- .tc-free-label {
383
- background: #38bdf8;
384
- color: #0c4a6e;
385
- }
386
-
387
- .tc-price-main {
388
- display: flex;
389
- flex-direction: column;
390
- gap: 2px;
391
- }
392
-
393
- .tc-total {
394
- font-size: 2.75rem;
395
- font-weight: 900;
396
- color: var(--text-main);
397
- margin: 0;
398
- line-height: 1;
399
- }
400
-
401
- .tc-est {
402
- font-size: 0.75rem;
403
- color: var(--text-muted);
404
- }
405
-
406
- .tc-line-items {
407
- display: flex;
408
- flex-direction: column;
409
- gap: 6px;
410
- padding-top: 12px;
411
- border-top: 1px solid var(--border-color);
412
- }
413
-
414
- .tc-line {
415
- display: flex;
416
- justify-content: space-between;
417
- font-size: 0.8125rem;
418
- color: var(--text-muted);
419
- }
420
-
421
- .tc-badge {
422
- align-self: flex-start;
423
- padding: 5px 12px;
424
- border-radius: 9999px;
425
- font-size: 0.75rem;
426
- font-weight: 700;
427
- }
428
-
429
- .tc-badge-better {
430
- background: #22c55e;
431
- color: #fff;
432
- }
433
-
434
- .tc-badge-worse {
435
- background: var(--bg-muted);
436
- color: var(--text-muted);
437
- }
438
-
439
- .tc-dashboard {
440
- padding: 24px 32px;
441
- border-bottom: 1px solid var(--border-color);
442
- display: flex;
443
- flex-direction: column;
444
- gap: 16px;
445
- }
446
-
447
- .tc-section-label {
448
- font-size: 0.6875rem;
449
- font-weight: 900;
450
- text-transform: uppercase;
451
- letter-spacing: 0.14em;
452
- color: var(--tc-p);
453
- margin: 0;
454
- }
455
-
456
- .tc-dash-grid {
457
- display: grid;
458
- grid-template-columns: 1fr;
459
- gap: 20px;
460
- }
461
-
462
- @media (min-width: 768px) {
463
- .tc-dash-grid {
464
- grid-template-columns: 2fr 1fr;
465
- }
466
- }
467
-
468
- .tc-chart-svg {
469
- width: 100%;
470
- display: block;
471
- }
472
-
473
- .tc-bar {
474
- fill: var(--tc-p);
475
- opacity: 0.7;
476
- }
477
-
478
- .tc-metrics {
479
- display: flex;
480
- flex-direction: column;
481
- gap: 12px;
482
- }
483
-
484
- .tc-metric {
485
- background: var(--bg-muted);
486
- border-radius: 12px;
487
- padding: 14px 16px;
488
- display: flex;
489
- flex-direction: column;
490
- gap: 2px;
491
- }
492
-
493
- .tc-metric-label {
494
- font-size: 0.625rem;
495
- font-weight: 900;
496
- text-transform: uppercase;
497
- letter-spacing: 0.1em;
498
- color: var(--text-muted);
499
- }
500
-
501
- .tc-metric-val {
502
- font-size: 1.5rem;
503
- font-weight: 900;
504
- color: var(--text-main);
505
- }
506
-
507
- .tc-metric-sub {
508
- font-size: 0.6875rem;
509
- color: var(--text-muted);
510
- }
511
-
512
- .tc-simulator {
513
- padding: 24px 32px;
514
- display: flex;
515
- flex-direction: column;
516
- gap: 16px;
517
- }
518
-
519
- .tc-sim-grid {
520
- display: grid;
521
- grid-template-columns: 1fr;
522
- gap: 16px;
523
- }
524
-
525
- @media (min-width: 640px) {
526
- .tc-sim-grid {
527
- grid-template-columns: 1fr 1fr;
528
- }
529
- }
530
-
531
- .tc-sim-card {
532
- background: var(--bg-muted);
533
- border-radius: 14px;
534
- padding: 16px;
535
- display: flex;
536
- flex-direction: column;
537
- gap: 10px;
538
- }
539
-
540
- .tc-sim-title {
541
- font-size: 0.8125rem;
542
- font-weight: 700;
543
- color: var(--text-main);
544
- margin: 0;
545
- }
546
-
547
- .tc-sim-desc {
548
- font-size: 0.75rem;
549
- color: var(--text-muted);
550
- margin: 0;
551
- }
552
-
553
- .tc-toggle {
554
- position: relative;
555
- display: inline-block;
556
- width: 48px;
557
- height: 26px;
558
- }
559
-
560
- .tc-toggle-input {
561
- opacity: 0;
562
- width: 0;
563
- height: 0;
564
- position: absolute;
565
- }
566
-
567
- .tc-toggle-track {
568
- position: absolute;
569
- cursor: pointer;
570
- inset: 0;
571
- background: var(--border-color);
572
- border-radius: 9999px;
573
- transition: background 0.3s;
574
- }
575
-
576
- .tc-toggle-track::before {
577
- content: "";
578
- position: absolute;
579
- width: 18px;
580
- height: 18px;
581
- left: 4px;
582
- top: 4px;
583
- background: #fff;
584
- border-radius: 50%;
585
- transition: transform 0.3s;
586
- }
587
-
588
- .tc-toggle-input:checked + .tc-toggle-track {
589
- background: var(--tc-p);
590
- }
591
-
592
- .tc-toggle-input:checked + .tc-toggle-track::before {
593
- transform: translateX(22px);
594
- }
595
- </style>
@@ -0,0 +1,335 @@
1
+ .tc-wrapper {
2
+ --tc-p: #f59e0b;
3
+
4
+ width: 100%;
5
+ padding: 1rem 0;
6
+ }
7
+
8
+ .tc-card {
9
+ background: var(--bg-surface);
10
+ width: calc(100% - 24px);
11
+ max-width: 960px;
12
+ margin: 0 auto;
13
+ border-radius: 24px;
14
+ overflow: hidden;
15
+ display: flex;
16
+ flex-direction: column;
17
+ gap: 0;
18
+ border: 1px solid var(--border-color);
19
+ color: var(--text-main);
20
+ }
21
+
22
+ .tc-inputs {
23
+ display: grid;
24
+ grid-template-columns: 1fr;
25
+ gap: 24px;
26
+ padding: 32px;
27
+ border-bottom: 1px solid var(--border-color);
28
+ }
29
+
30
+ @media (min-width: 640px) {
31
+ .tc-inputs {
32
+ grid-template-columns: 1fr 1fr;
33
+ }
34
+ }
35
+
36
+ .tc-input-group {
37
+ display: flex;
38
+ flex-direction: column;
39
+ gap: 10px;
40
+ }
41
+
42
+ .tc-label {
43
+ font-size: 0.6875rem;
44
+ font-weight: 700;
45
+ text-transform: uppercase;
46
+ letter-spacing: 0.1em;
47
+ color: var(--tc-p);
48
+ }
49
+
50
+ .tc-slider {
51
+ width: 100%;
52
+ height: 6px;
53
+ accent-color: var(--tc-p);
54
+ cursor: pointer;
55
+ border-radius: 9999px;
56
+ }
57
+
58
+ .tc-value-row {
59
+ display: flex;
60
+ align-items: baseline;
61
+ gap: 6px;
62
+ }
63
+
64
+ .tc-value {
65
+ font-size: 2rem;
66
+ font-weight: 900;
67
+ color: var(--text-main);
68
+ line-height: 1;
69
+ }
70
+
71
+ .tc-unit {
72
+ font-size: 0.8125rem;
73
+ color: var(--text-muted);
74
+ }
75
+
76
+ .tc-results {
77
+ display: grid;
78
+ grid-template-columns: 1fr;
79
+ gap: 16px;
80
+ padding: 24px 32px;
81
+ border-bottom: 1px solid var(--border-color);
82
+ }
83
+
84
+ @media (min-width: 640px) {
85
+ .tc-results {
86
+ grid-template-columns: 1fr 1fr;
87
+ }
88
+ }
89
+
90
+ .tc-tariff-card {
91
+ border-radius: 16px;
92
+ padding: 20px;
93
+ display: flex;
94
+ flex-direction: column;
95
+ gap: 12px;
96
+ }
97
+
98
+ .tc-market-card {
99
+ background: rgba(245, 158, 11, 0.06);
100
+ border: 1px solid rgba(245, 158, 11, 0.2);
101
+ }
102
+
103
+ .tc-free-card {
104
+ background: rgba(14, 165, 233, 0.06);
105
+ border: 1px solid rgba(14, 165, 233, 0.2);
106
+ }
107
+
108
+ .tc-tariff-label {
109
+ font-size: 0.625rem;
110
+ font-weight: 900;
111
+ text-transform: uppercase;
112
+ letter-spacing: 0.12em;
113
+ padding: 4px 10px;
114
+ border-radius: 9999px;
115
+ align-self: flex-start;
116
+ }
117
+
118
+ .tc-market-label {
119
+ background: #fbbf24;
120
+ color: #78350f;
121
+ }
122
+
123
+ .tc-free-label {
124
+ background: #38bdf8;
125
+ color: #0c4a6e;
126
+ }
127
+
128
+ .tc-price-main {
129
+ display: flex;
130
+ flex-direction: column;
131
+ gap: 2px;
132
+ }
133
+
134
+ .tc-total {
135
+ font-size: 2.75rem;
136
+ font-weight: 900;
137
+ color: var(--text-main);
138
+ margin: 0;
139
+ line-height: 1;
140
+ }
141
+
142
+ .tc-est {
143
+ font-size: 0.75rem;
144
+ color: var(--text-muted);
145
+ }
146
+
147
+ .tc-line-items {
148
+ display: flex;
149
+ flex-direction: column;
150
+ gap: 6px;
151
+ padding-top: 12px;
152
+ border-top: 1px solid var(--border-color);
153
+ }
154
+
155
+ .tc-line {
156
+ display: flex;
157
+ justify-content: space-between;
158
+ font-size: 0.8125rem;
159
+ color: var(--text-muted);
160
+ }
161
+
162
+ .tc-badge {
163
+ align-self: flex-start;
164
+ padding: 5px 12px;
165
+ border-radius: 9999px;
166
+ font-size: 0.75rem;
167
+ font-weight: 700;
168
+ }
169
+
170
+ .tc-badge-better {
171
+ background: #22c55e;
172
+ color: #fff;
173
+ }
174
+
175
+ .tc-badge-worse {
176
+ background: var(--bg-muted);
177
+ color: var(--text-muted);
178
+ }
179
+
180
+ .tc-dashboard {
181
+ padding: 24px 32px;
182
+ border-bottom: 1px solid var(--border-color);
183
+ display: flex;
184
+ flex-direction: column;
185
+ gap: 16px;
186
+ }
187
+
188
+ .tc-section-label {
189
+ font-size: 0.6875rem;
190
+ font-weight: 900;
191
+ text-transform: uppercase;
192
+ letter-spacing: 0.14em;
193
+ color: var(--tc-p);
194
+ margin: 0;
195
+ }
196
+
197
+ .tc-dash-grid {
198
+ display: grid;
199
+ grid-template-columns: 1fr;
200
+ gap: 20px;
201
+ }
202
+
203
+ @media (min-width: 768px) {
204
+ .tc-dash-grid {
205
+ grid-template-columns: 2fr 1fr;
206
+ }
207
+ }
208
+
209
+ .tc-chart-svg {
210
+ width: 100%;
211
+ display: block;
212
+ }
213
+
214
+ .tc-bar {
215
+ fill: var(--tc-p);
216
+ opacity: 0.7;
217
+ }
218
+
219
+ .tc-metrics {
220
+ display: flex;
221
+ flex-direction: column;
222
+ gap: 12px;
223
+ }
224
+
225
+ .tc-metric {
226
+ background: var(--bg-muted);
227
+ border-radius: 12px;
228
+ padding: 14px 16px;
229
+ display: flex;
230
+ flex-direction: column;
231
+ gap: 2px;
232
+ }
233
+
234
+ .tc-metric-label {
235
+ font-size: 0.625rem;
236
+ font-weight: 900;
237
+ text-transform: uppercase;
238
+ letter-spacing: 0.1em;
239
+ color: var(--text-muted);
240
+ }
241
+
242
+ .tc-metric-val {
243
+ font-size: 1.5rem;
244
+ font-weight: 900;
245
+ color: var(--text-main);
246
+ }
247
+
248
+ .tc-metric-sub {
249
+ font-size: 0.6875rem;
250
+ color: var(--text-muted);
251
+ }
252
+
253
+ .tc-simulator {
254
+ padding: 24px 32px;
255
+ display: flex;
256
+ flex-direction: column;
257
+ gap: 16px;
258
+ }
259
+
260
+ .tc-sim-grid {
261
+ display: grid;
262
+ grid-template-columns: 1fr;
263
+ gap: 16px;
264
+ }
265
+
266
+ @media (min-width: 640px) {
267
+ .tc-sim-grid {
268
+ grid-template-columns: 1fr 1fr;
269
+ }
270
+ }
271
+
272
+ .tc-sim-card {
273
+ background: var(--bg-muted);
274
+ border-radius: 14px;
275
+ padding: 16px;
276
+ display: flex;
277
+ flex-direction: column;
278
+ gap: 10px;
279
+ }
280
+
281
+ .tc-sim-title {
282
+ font-size: 0.8125rem;
283
+ font-weight: 700;
284
+ color: var(--text-main);
285
+ margin: 0;
286
+ }
287
+
288
+ .tc-sim-desc {
289
+ font-size: 0.75rem;
290
+ color: var(--text-muted);
291
+ margin: 0;
292
+ }
293
+
294
+ .tc-toggle {
295
+ position: relative;
296
+ display: inline-block;
297
+ width: 48px;
298
+ height: 26px;
299
+ }
300
+
301
+ .tc-toggle-input {
302
+ opacity: 0;
303
+ width: 0;
304
+ height: 0;
305
+ position: absolute;
306
+ }
307
+
308
+ .tc-toggle-track {
309
+ position: absolute;
310
+ cursor: pointer;
311
+ inset: 0;
312
+ background: var(--border-color);
313
+ border-radius: 9999px;
314
+ transition: background 0.3s;
315
+ }
316
+
317
+ .tc-toggle-track::before {
318
+ content: "";
319
+ position: absolute;
320
+ width: 18px;
321
+ height: 18px;
322
+ left: 4px;
323
+ top: 4px;
324
+ background: #fff;
325
+ border-radius: 50%;
326
+ transition: transform 0.3s;
327
+ }
328
+
329
+ .tc-toggle-input:checked + .tc-toggle-track {
330
+ background: var(--tc-p);
331
+ }
332
+
333
+ .tc-toggle-input:checked + .tc-toggle-track::before {
334
+ transform: translateX(22px);
335
+ }