@jjlmoya/utils-nautical 1.13.0 → 1.14.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.
@@ -479,210 +479,3 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
479
479
  new NauticalConverter();
480
480
  </script>
481
481
 
482
- <style>
483
- .nautical-converter {
484
- --n-bg: #fff;
485
- --n-bg-muted: #f1f5f9;
486
- --n-text: #0f172a;
487
- --n-text-muted: #475569;
488
- --n-text-dim: #64748b;
489
- --n-border: #e2e8f0;
490
- --n-shadow: rgba(0, 0, 0, 0.05);
491
- --n-primary: #3b82f6;
492
- --n-primary-on: #fff;
493
- --n-accent: #6366f1;
494
- --n-cyan: #0891b2;
495
- --n-success: #10b981;
496
- --n-warning: #f59e0b;
497
- --n-error: #f43f5e;
498
-
499
- display: flex;
500
- flex-direction: column;
501
- gap: 1.5rem;
502
- max-width: 900px;
503
- margin: 0 auto;
504
- }
505
-
506
- :global(.theme-dark) .nautical-converter {
507
- --n-bg: #0f172a;
508
- --n-bg-muted: #1e293b;
509
- --n-text: #f8fafc;
510
- --n-text-muted: #94a3b8;
511
- --n-text-dim: #64748b;
512
- --n-border: #334155;
513
- --n-shadow: rgba(0, 0, 0, 0.3);
514
- --n-primary: #60a5fa;
515
- --n-primary-on: #fff;
516
- --n-accent: #818cf8;
517
- --n-cyan: #22d3ee;
518
- --n-success: #34d399;
519
- --n-warning: #fbbf24;
520
- --n-error: #fb7185;
521
- }
522
-
523
- .nc-category-tabs {
524
- display: flex;
525
- gap: 0.5rem;
526
- flex-wrap: wrap;
527
- background: var(--n-bg);
528
- border: 1px solid var(--n-border);
529
- border-radius: 1rem;
530
- padding: 0.5rem;
531
- }
532
-
533
- .nc-tab-btn {
534
- flex: 1;
535
- min-width: 120px;
536
- padding: 0.7rem 1.2rem;
537
- border: none;
538
- border-radius: 0.7rem;
539
- background: transparent;
540
- color: var(--n-text-muted);
541
- font-size: 0.9rem;
542
- font-weight: 600;
543
- cursor: pointer;
544
- transition: background 0.2s, color 0.2s;
545
- }
546
-
547
- .nc-tab-btn:hover {
548
- background: var(--n-bg-muted);
549
- color: var(--n-text);
550
- }
551
-
552
- .nc-tab-btn.active {
553
- background: var(--n-primary);
554
- color: var(--n-primary-on);
555
- }
556
-
557
- .nc-tab-panel {
558
- display: none;
559
- }
560
-
561
- .nc-tab-panel.active {
562
- display: block;
563
- }
564
-
565
- .nc-converter-card {
566
- background: var(--n-bg);
567
- border: 1px solid var(--n-border);
568
- border-radius: 1.5rem;
569
- padding: 2rem;
570
- box-shadow: 0 8px 24px var(--n-shadow);
571
- }
572
-
573
- .nc-input-grid {
574
- display: grid;
575
- grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
576
- gap: 1.2rem;
577
- }
578
-
579
- .nc-input-group {
580
- display: flex;
581
- flex-direction: column;
582
- gap: 0.4rem;
583
- }
584
-
585
- .nc-input-group label {
586
- font-size: 0.8rem;
587
- font-weight: 700;
588
- color: var(--n-text-muted);
589
- text-transform: uppercase;
590
- letter-spacing: 0.05em;
591
- }
592
-
593
- .nc-input-wrapper {
594
- position: relative;
595
- display: flex;
596
- align-items: center;
597
- }
598
-
599
- .nc-elegant-input {
600
- width: 100%;
601
- background: var(--n-bg);
602
- color: var(--n-text);
603
- border: 2px solid var(--n-border);
604
- border-radius: 0.8rem;
605
- padding: 0.75rem 2.8rem 0.75rem 1rem;
606
- font-size: 1rem;
607
- outline: none;
608
- transition: border-color 0.2s;
609
- }
610
-
611
- .nc-elegant-input:focus {
612
- border-color: var(--n-cyan);
613
- }
614
-
615
- .nc-copy-btn {
616
- position: absolute;
617
- right: 0.5rem;
618
- background: none;
619
- border: none;
620
- cursor: pointer;
621
- color: var(--n-cyan);
622
- padding: 0.2rem;
623
- display: flex;
624
- align-items: center;
625
- opacity: 0.5;
626
- transition: opacity 0.2s;
627
- }
628
-
629
- .nc-copy-btn:hover {
630
- opacity: 1;
631
- }
632
-
633
- .nc-beaufort-card {
634
- margin-top: 1.5rem;
635
- background: var(--n-bg);
636
- border: 1px solid var(--n-border);
637
- border-radius: 1rem;
638
- padding: 1.2rem 1.5rem;
639
- display: none;
640
- align-items: center;
641
- gap: 1.2rem;
642
- }
643
-
644
- .nc-beaufort-card.visible {
645
- display: flex;
646
- }
647
-
648
- .nc-beaufort-badge {
649
- display: flex;
650
- align-items: center;
651
- justify-content: center;
652
- width: 56px;
653
- height: 56px;
654
- border-radius: 50%;
655
- font-size: 1.6rem;
656
- font-weight: 900;
657
- color: var(--n-primary-on);
658
- flex-shrink: 0;
659
- }
660
-
661
- .nc-beaufort-info {
662
- display: flex;
663
- flex-direction: column;
664
- gap: 0.2rem;
665
- }
666
-
667
- .nc-beaufort-name {
668
- font-size: 1.1rem;
669
- font-weight: 700;
670
- color: var(--n-text);
671
- }
672
-
673
- .nc-beaufort-sea {
674
- font-size: 0.9rem;
675
- color: var(--n-text-muted);
676
- }
677
-
678
- @media (max-width: 600px) {
679
- .nc-input-grid {
680
- grid-template-columns: 1fr 1fr;
681
- }
682
-
683
- .nc-tab-btn {
684
- font-size: 0.8rem;
685
- padding: 0.6rem 0.8rem;
686
- }
687
- }
688
- </style>
@@ -0,0 +1,205 @@
1
+ .nautical-converter {
2
+ --n-bg: #fff;
3
+ --n-bg-muted: #f1f5f9;
4
+ --n-text: #0f172a;
5
+ --n-text-muted: #475569;
6
+ --n-text-dim: #64748b;
7
+ --n-border: #e2e8f0;
8
+ --n-shadow: rgba(0, 0, 0, 0.05);
9
+ --n-primary: #3b82f6;
10
+ --n-primary-on: #fff;
11
+ --n-accent: #6366f1;
12
+ --n-cyan: #0891b2;
13
+ --n-success: #10b981;
14
+ --n-warning: #f59e0b;
15
+ --n-error: #f43f5e;
16
+
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 1.5rem;
20
+ max-width: 900px;
21
+ margin: 0 auto;
22
+ }
23
+
24
+ :global(.theme-dark) .nautical-converter {
25
+ --n-bg: #0f172a;
26
+ --n-bg-muted: #1e293b;
27
+ --n-text: #f8fafc;
28
+ --n-text-muted: #94a3b8;
29
+ --n-text-dim: #64748b;
30
+ --n-border: #334155;
31
+ --n-shadow: rgba(0, 0, 0, 0.3);
32
+ --n-primary: #60a5fa;
33
+ --n-primary-on: #fff;
34
+ --n-accent: #818cf8;
35
+ --n-cyan: #22d3ee;
36
+ --n-success: #34d399;
37
+ --n-warning: #fbbf24;
38
+ --n-error: #fb7185;
39
+ }
40
+
41
+ .nc-category-tabs {
42
+ display: flex;
43
+ gap: 0.5rem;
44
+ flex-wrap: wrap;
45
+ background: var(--n-bg);
46
+ border: 1px solid var(--n-border);
47
+ border-radius: 1rem;
48
+ padding: 0.5rem;
49
+ }
50
+
51
+ .nc-tab-btn {
52
+ flex: 1;
53
+ min-width: 120px;
54
+ padding: 0.7rem 1.2rem;
55
+ border: none;
56
+ border-radius: 0.7rem;
57
+ background: transparent;
58
+ color: var(--n-text-muted);
59
+ font-size: 0.9rem;
60
+ font-weight: 600;
61
+ cursor: pointer;
62
+ transition: background 0.2s, color 0.2s;
63
+ }
64
+
65
+ .nc-tab-btn:hover {
66
+ background: var(--n-bg-muted);
67
+ color: var(--n-text);
68
+ }
69
+
70
+ .nc-tab-btn.active {
71
+ background: var(--n-primary);
72
+ color: var(--n-primary-on);
73
+ }
74
+
75
+ .nc-tab-panel {
76
+ display: none;
77
+ }
78
+
79
+ .nc-tab-panel.active {
80
+ display: block;
81
+ }
82
+
83
+ .nc-converter-card {
84
+ background: var(--n-bg);
85
+ border: 1px solid var(--n-border);
86
+ border-radius: 1.5rem;
87
+ padding: 2rem;
88
+ box-shadow: 0 8px 24px var(--n-shadow);
89
+ }
90
+
91
+ .nc-input-grid {
92
+ display: grid;
93
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
94
+ gap: 1.2rem;
95
+ }
96
+
97
+ .nc-input-group {
98
+ display: flex;
99
+ flex-direction: column;
100
+ gap: 0.4rem;
101
+ }
102
+
103
+ .nc-input-group label {
104
+ font-size: 0.8rem;
105
+ font-weight: 700;
106
+ color: var(--n-text-muted);
107
+ text-transform: uppercase;
108
+ letter-spacing: 0.05em;
109
+ }
110
+
111
+ .nc-input-wrapper {
112
+ position: relative;
113
+ display: flex;
114
+ align-items: center;
115
+ }
116
+
117
+ .nc-elegant-input {
118
+ width: 100%;
119
+ background: var(--n-bg);
120
+ color: var(--n-text);
121
+ border: 2px solid var(--n-border);
122
+ border-radius: 0.8rem;
123
+ padding: 0.75rem 2.8rem 0.75rem 1rem;
124
+ font-size: 1rem;
125
+ outline: none;
126
+ transition: border-color 0.2s;
127
+ }
128
+
129
+ .nc-elegant-input:focus {
130
+ border-color: var(--n-cyan);
131
+ }
132
+
133
+ .nc-copy-btn {
134
+ position: absolute;
135
+ right: 0.5rem;
136
+ background: none;
137
+ border: none;
138
+ cursor: pointer;
139
+ color: var(--n-cyan);
140
+ padding: 0.2rem;
141
+ display: flex;
142
+ align-items: center;
143
+ opacity: 0.5;
144
+ transition: opacity 0.2s;
145
+ }
146
+
147
+ .nc-copy-btn:hover {
148
+ opacity: 1;
149
+ }
150
+
151
+ .nc-beaufort-card {
152
+ margin-top: 1.5rem;
153
+ background: var(--n-bg);
154
+ border: 1px solid var(--n-border);
155
+ border-radius: 1rem;
156
+ padding: 1.2rem 1.5rem;
157
+ display: none;
158
+ align-items: center;
159
+ gap: 1.2rem;
160
+ }
161
+
162
+ .nc-beaufort-card.visible {
163
+ display: flex;
164
+ }
165
+
166
+ .nc-beaufort-badge {
167
+ display: flex;
168
+ align-items: center;
169
+ justify-content: center;
170
+ width: 56px;
171
+ height: 56px;
172
+ border-radius: 50%;
173
+ font-size: 1.6rem;
174
+ font-weight: 900;
175
+ color: var(--n-primary-on);
176
+ flex-shrink: 0;
177
+ }
178
+
179
+ .nc-beaufort-info {
180
+ display: flex;
181
+ flex-direction: column;
182
+ gap: 0.2rem;
183
+ }
184
+
185
+ .nc-beaufort-name {
186
+ font-size: 1.1rem;
187
+ font-weight: 700;
188
+ color: var(--n-text);
189
+ }
190
+
191
+ .nc-beaufort-sea {
192
+ font-size: 0.9rem;
193
+ color: var(--n-text-muted);
194
+ }
195
+
196
+ @media (max-width: 600px) {
197
+ .nc-input-grid {
198
+ grid-template-columns: 1fr 1fr;
199
+ }
200
+
201
+ .nc-tab-btn {
202
+ font-size: 0.8rem;
203
+ padding: 0.6rem 0.8rem;
204
+ }
205
+ }