@jjlmoya/utils-nature 1.11.0 → 1.12.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.
@@ -206,476 +206,6 @@ const cropNote: Record<string, string> = {
206
206
  </div>
207
207
  </calc-sembradora>
208
208
 
209
- <style>
210
- .sc-wrap {
211
- --sc-bg: #fff;
212
- --sc-bg-params: #fff;
213
- --sc-bg-speed: #f4f4f5;
214
- --sc-border: #e4e4e7;
215
- --sc-text: #18181b;
216
- --sc-text-muted: #71717a;
217
- --sc-accent: #059669;
218
- --sc-accent-light: #d1fae5;
219
- --sc-result-from: #059669;
220
- --sc-result-to: #0d9488;
221
- --sc-badge-bg: #000;
222
- --sc-badge-text: #fff;
223
- --sc-amber-bg: #fffbeb;
224
- --sc-amber-border: #fde68a;
225
- --sc-amber-text: #d97706;
226
- --sc-range-track: #e4e4e7;
227
-
228
- display: block;
229
- max-width: 72rem;
230
- margin: 0 auto;
231
- padding: 1rem;
232
- user-select: none;
233
- }
234
-
235
- :global(.theme-dark) .sc-wrap {
236
- --sc-bg: #18181b;
237
- --sc-bg-params: #18181b;
238
- --sc-bg-speed: #27272a;
239
- --sc-border: #3f3f46;
240
- --sc-text: #fff;
241
- --sc-text-muted: #a1a1aa;
242
- --sc-badge-bg: #fff;
243
- --sc-badge-text: #000;
244
- --sc-amber-bg: rgba(120,53,15,0.1);
245
- --sc-amber-border: #92400e;
246
- --sc-amber-text: #fbbf24;
247
- --sc-range-track: #3f3f46;
248
- }
249
-
250
- .sc-section {
251
- margin-bottom: 3rem;
252
- }
253
-
254
- .sc-section-head {
255
- font-size: 1.125rem;
256
- font-weight: 700;
257
- color: var(--sc-text);
258
- display: flex;
259
- align-items: center;
260
- gap: 0.5rem;
261
- margin-bottom: 1.5rem;
262
- }
263
-
264
- .sc-step-badge {
265
- width: 2rem;
266
- height: 2rem;
267
- border-radius: 9999px;
268
- background: var(--sc-badge-bg);
269
- color: var(--sc-badge-text);
270
- display: flex;
271
- align-items: center;
272
- justify-content: center;
273
- font-size: 0.875rem;
274
- font-weight: 700;
275
- flex-shrink: 0;
276
- }
277
-
278
- .sc-crop-grid {
279
- display: grid;
280
- grid-template-columns: repeat(2, 1fr);
281
- gap: 0.75rem;
282
- }
283
-
284
- @media (min-width: 768px) {
285
- .sc-crop-grid {
286
- grid-template-columns: repeat(4, 1fr);
287
- }
288
- }
289
-
290
- @media (min-width: 1024px) {
291
- .sc-crop-grid {
292
- grid-template-columns: repeat(7, 1fr);
293
- }
294
- }
295
-
296
- .crop-btn {
297
- position: relative;
298
- display: flex;
299
- flex-direction: column;
300
- align-items: center;
301
- padding: 0.75rem;
302
- border-radius: 1rem;
303
- background: var(--sc-bg);
304
- border: 2px solid transparent;
305
- cursor: pointer;
306
- box-shadow: 0 1px 3px rgba(0,0,0,0.08);
307
- transition: border-color 0.15s, box-shadow 0.15s;
308
- }
309
-
310
- .crop-btn:hover {
311
- border-color: var(--sc-border);
312
- box-shadow: 0 4px 8px rgba(0,0,0,0.1);
313
- }
314
-
315
- .sc-crop-icon {
316
- width: 3rem;
317
- height: 3rem;
318
- border-radius: 9999px;
319
- display: flex;
320
- align-items: center;
321
- justify-content: center;
322
- margin-bottom: 0.75rem;
323
- transition: filter 0.15s;
324
- }
325
-
326
- .sc-crop-glyph {
327
- font-size: 1.5rem;
328
- display: block;
329
- }
330
-
331
- .sc-crop-name {
332
- font-size: 0.75rem;
333
- font-weight: 700;
334
- color: var(--sc-text);
335
- text-align: center;
336
- line-height: 1.2;
337
- }
338
-
339
- .sc-crop-note {
340
- font-size: 0.625rem;
341
- color: var(--sc-text-muted);
342
- text-align: center;
343
- margin-top: 0.25rem;
344
- line-height: 1.2;
345
- }
346
-
347
- .sc-selection-ring {
348
- position: absolute;
349
- inset: 0;
350
- border-radius: 1rem;
351
- border: 2px solid transparent;
352
- opacity: 0;
353
- transform: scale(0.95);
354
- transition: opacity 0.15s, transform 0.15s;
355
- pointer-events: none;
356
- }
357
-
358
- :global(.crop-btn.active) .sc-selection-ring {
359
- opacity: 1;
360
- transform: scale(1);
361
- border-width: 3px;
362
- border-color: #10b981;
363
- }
364
-
365
- .sc-dashboard {
366
- display: grid;
367
- gap: 2rem;
368
- transition: opacity 0.5s;
369
- }
370
-
371
- @media (min-width: 1024px) {
372
- .sc-dashboard {
373
- grid-template-columns: 1fr 2fr;
374
- }
375
- }
376
-
377
- .sc-dashboard[data-disabled] {
378
- opacity: 0.5;
379
- pointer-events: none;
380
- }
381
-
382
- .sc-params-col,
383
- .sc-analysis-col {
384
- display: flex;
385
- flex-direction: column;
386
- gap: 1.5rem;
387
- }
388
-
389
- .sc-params-card {
390
- background: var(--sc-bg-params);
391
- padding: 1.5rem;
392
- border-radius: 1.5rem;
393
- box-shadow: 0 4px 20px rgba(0,0,0,0.08);
394
- border: 1px solid var(--sc-border);
395
- display: flex;
396
- flex-direction: column;
397
- gap: 2rem;
398
- }
399
-
400
- .sc-slider-group {
401
- display: flex;
402
- flex-direction: column;
403
- gap: 0.5rem;
404
- }
405
-
406
- .sc-slider-label {
407
- display: flex;
408
- justify-content: space-between;
409
- font-size: 0.75rem;
410
- font-weight: 700;
411
- color: var(--sc-text-muted);
412
- text-transform: uppercase;
413
- letter-spacing: 0.05em;
414
- }
415
-
416
- .sc-label-unit {
417
- color: var(--sc-accent);
418
- }
419
-
420
- .sc-label-unit-speed {
421
- color: #3b82f6;
422
- }
423
-
424
- .sc-slider-row {
425
- display: flex;
426
- align-items: center;
427
- gap: 1rem;
428
- }
429
-
430
- .sc-range {
431
- flex: 1;
432
- height: 0.5rem;
433
- background: var(--sc-range-track);
434
- border-radius: 9999px;
435
- appearance: none;
436
- cursor: pointer;
437
- accent-color: var(--sc-text);
438
- }
439
-
440
- .sc-range-val {
441
- width: 6rem;
442
- text-align: right;
443
- font-weight: 900;
444
- font-size: 1.25rem;
445
- color: var(--sc-text);
446
- font-variant-numeric: tabular-nums;
447
- }
448
-
449
- .sc-speed-group {
450
- display: flex;
451
- flex-direction: column;
452
- gap: 1rem;
453
- }
454
-
455
- .sc-speed-bar {
456
- display: flex;
457
- justify-content: space-between;
458
- gap: 0.25rem;
459
- padding: 0.5rem;
460
- background: var(--sc-bg-speed);
461
- border-radius: 1rem;
462
- }
463
-
464
- .speed-btn {
465
- flex: 1;
466
- padding: 0.75rem 0;
467
- border-radius: 0.75rem;
468
- font-size: 0.875rem;
469
- font-weight: 700;
470
- color: var(--sc-text-muted);
471
- background: transparent;
472
- border: none;
473
- cursor: pointer;
474
- transition: background 0.15s, color 0.15s, box-shadow 0.15s;
475
- }
476
-
477
- .speed-btn:hover {
478
- background: var(--sc-bg);
479
- color: var(--sc-text);
480
- }
481
-
482
- :global(.speed-btn.active) {
483
- background-color: #059669;
484
- color: #fff;
485
- box-shadow: 0 4px 6px -1px rgba(5,150,105,0.4);
486
- }
487
-
488
- .sc-result-card {
489
- background: linear-gradient(to top right, var(--sc-result-from), var(--sc-result-to));
490
- color: #fff;
491
- padding: 2rem;
492
- border-radius: 2rem;
493
- box-shadow: 0 20px 40px rgba(5,150,105,0.25);
494
- display: grid;
495
- gap: 2rem;
496
- }
497
-
498
- @media (min-width: 768px) {
499
- .sc-result-card {
500
- grid-template-columns: 1fr 1fr;
501
- align-items: center;
502
- }
503
- }
504
-
505
- .sc-result-label {
506
- font-size: 0.7rem;
507
- font-weight: 700;
508
- text-transform: uppercase;
509
- letter-spacing: 0.15em;
510
- color: rgba(255,255,255,0.75);
511
- margin-bottom: 0.25rem;
512
- }
513
-
514
- .sc-result-value-row {
515
- display: flex;
516
- align-items: baseline;
517
- gap: 0.5rem;
518
- }
519
-
520
- .sc-result-big {
521
- font-size: 5rem;
522
- font-weight: 900;
523
- letter-spacing: -0.04em;
524
- line-height: 1;
525
- }
526
-
527
- .sc-result-unit {
528
- font-size: 1.75rem;
529
- font-weight: 700;
530
- color: rgba(255,255,255,0.75);
531
- }
532
-
533
- .sc-result-desc {
534
- margin-top: 1rem;
535
- font-size: 0.875rem;
536
- font-weight: 500;
537
- color: rgba(255,255,255,0.8);
538
- }
539
-
540
- .sc-hz-card {
541
- background: rgba(255,255,255,0.1);
542
- border-radius: 1.5rem;
543
- padding: 1.5rem;
544
- border: 1px solid rgba(255,255,255,0.1);
545
- }
546
-
547
- .sc-hz-header {
548
- display: flex;
549
- align-items: center;
550
- gap: 0.75rem;
551
- margin-bottom: 1rem;
552
- }
553
-
554
- .sc-hz-icon {
555
- font-size: 1.5rem;
556
- color: rgba(255,255,255,0.75);
557
- }
558
-
559
- .sc-hz-title {
560
- font-weight: 700;
561
- text-transform: uppercase;
562
- font-size: 0.75rem;
563
- letter-spacing: 0.08em;
564
- color: #fff;
565
- }
566
-
567
- .sc-hz-track {
568
- position: relative;
569
- height: 1rem;
570
- background: rgba(0,0,0,0.2);
571
- border-radius: 9999px;
572
- margin-bottom: 0.5rem;
573
- overflow: hidden;
574
- }
575
-
576
- .sc-hz-bar {
577
- height: 100%;
578
- background: #fff;
579
- border-radius: 9999px;
580
- width: 0;
581
- transition: width 0.3s;
582
- }
583
-
584
- :global(.sc-hz-bar[data-state="volumetric"]) {
585
- background: #3b82f6;
586
- box-shadow: 0 0 10px rgba(59,130,246,0.5);
587
- }
588
-
589
- :global(.sc-hz-bar[data-state="optimal"]) {
590
- background: #34d399;
591
- box-shadow: 0 0 10px rgba(52,211,153,0.5);
592
- }
593
-
594
- :global(.sc-hz-bar[data-state="high"]) {
595
- background: #facc15;
596
- box-shadow: 0 0 10px rgba(250,204,21,0.5);
597
- }
598
-
599
- :global(.sc-hz-bar[data-state="limit"]) {
600
- background: #ef4444;
601
- box-shadow: 0 0 10px rgba(239,68,68,0.5);
602
- }
603
-
604
- .sc-hz-footer {
605
- display: flex;
606
- justify-content: space-between;
607
- font-size: 0.75rem;
608
- font-weight: 700;
609
- color: rgba(255,255,255,0.75);
610
- }
611
-
612
- .sc-hz-val {
613
- color: rgba(255,255,255,0.75);
614
- }
615
-
616
- :global(.sc-hz-val[data-state="volumetric"]) { color: #bfdbfe; }
617
- :global(.sc-hz-val[data-state="optimal"]) { color: #6ee7b7; }
618
- :global(.sc-hz-val[data-state="high"]) { color: #fef08a; }
619
- :global(.sc-hz-val[data-state="limit"]) { color: #fca5a5; }
620
-
621
- .sc-hz-status {
622
- color: rgba(255,255,255,0.75);
623
- }
624
-
625
- .sc-metrics-grid {
626
- display: grid;
627
- grid-template-columns: repeat(2, 1fr);
628
- gap: 1rem;
629
- }
630
-
631
- @media (min-width: 768px) {
632
- .sc-metrics-grid {
633
- grid-template-columns: repeat(4, 1fr);
634
- }
635
- }
636
-
637
- .sc-metric-card {
638
- background: var(--sc-bg);
639
- padding: 1.25rem;
640
- border-radius: 1.5rem;
641
- border: 1px solid var(--sc-border);
642
- box-shadow: 0 1px 3px rgba(0,0,0,0.06);
643
- text-align: center;
644
- display: flex;
645
- flex-direction: column;
646
- align-items: center;
647
- gap: 0.25rem;
648
- }
649
-
650
- .sc-metric-card-amber {
651
- background: var(--sc-amber-bg);
652
- border-color: var(--sc-amber-border);
653
- }
654
-
655
- .sc-metric-val {
656
- display: block;
657
- font-size: 1.75rem;
658
- font-weight: 900;
659
- color: var(--sc-text);
660
- font-variant-numeric: tabular-nums;
661
- }
662
-
663
- .sc-metric-val-amber {
664
- color: var(--sc-amber-text);
665
- }
666
-
667
- .sc-metric-label {
668
- font-size: 0.625rem;
669
- text-transform: uppercase;
670
- font-weight: 700;
671
- color: var(--sc-text-muted);
672
- }
673
-
674
- .sc-metric-label-amber {
675
- color: var(--sc-amber-text);
676
- opacity: 0.7;
677
- }
678
- </style>
679
209
 
680
210
  <script>
681
211
  class CalcSembradora extends HTMLElement {