@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.
@@ -123,244 +123,3 @@ const bd = JSON.parse(ui.beaufortDataJson) as { force: number; name: string; sea
123
123
  sync('val-kn', savedKn);
124
124
  </script>
125
125
 
126
- <style>
127
- .speed-converter {
128
- --n-bg: #fff;
129
- --n-bg-muted: #f1f5f9;
130
- --n-text: #0f172a;
131
- --n-text-muted: #475569;
132
- --n-text-dim: #64748b;
133
- --n-border: #e2e8f0;
134
- --n-shadow: rgba(0, 0, 0, 0.05);
135
- --n-primary: #3b82f6;
136
- --n-primary-on: #fff;
137
- --n-accent: #6366f1;
138
- --n-cyan: #0891b2;
139
- --n-success: #10b981;
140
- --n-warning: #f59e0b;
141
- --n-error: #f43f5e;
142
-
143
- max-width: 900px;
144
- margin: 0 auto;
145
- display: flex;
146
- flex-direction: column;
147
- gap: 2rem;
148
- }
149
-
150
- :global(.theme-dark) .speed-converter {
151
- --n-bg: #0f172a;
152
- --n-bg-muted: #1e293b;
153
- --n-text: #f8fafc;
154
- --n-text-muted: #94a3b8;
155
- --n-text-dim: #64748b;
156
- --n-border: #334155;
157
- --n-shadow: rgba(0, 0, 0, 0.3);
158
- --n-primary: #60a5fa;
159
- --n-primary-on: #fff;
160
- --n-accent: #818cf8;
161
- --n-cyan: #22d3ee;
162
- --n-success: #34d399;
163
- --n-warning: #fbbf24;
164
- --n-error: #fb7185;
165
- }
166
-
167
- .sc-input-grid {
168
- display: grid;
169
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
170
- gap: 1rem;
171
- background: var(--n-bg);
172
- border: 1px solid var(--n-border);
173
- border-radius: 1.5rem;
174
- padding: 2rem;
175
- }
176
-
177
- .sc-input-group {
178
- display: flex;
179
- flex-direction: column;
180
- gap: 0.5rem;
181
- }
182
-
183
- .sc-input-group label {
184
- font-size: 0.8rem;
185
- font-weight: 600;
186
- color: var(--n-text-muted);
187
- text-transform: uppercase;
188
- }
189
-
190
- .sc-input-wrapper {
191
- background: var(--n-bg-muted);
192
- border: 2px solid var(--n-border);
193
- border-radius: 0.8rem;
194
- padding: 0.8rem 1rem;
195
- transition: border-color 0.2s;
196
- }
197
-
198
- .sc-input-wrapper:focus-within {
199
- border-color: var(--n-cyan);
200
- }
201
-
202
- .sc-input-wrapper input {
203
- background: transparent;
204
- border: none;
205
- outline: none;
206
- color: var(--n-text);
207
- font-size: 1.5rem;
208
- font-weight: 800;
209
- width: 100%;
210
- }
211
-
212
- .sc-input-wrapper input::-webkit-outer-spin-button,
213
- .sc-input-wrapper input::-webkit-inner-spin-button {
214
- appearance: none;
215
- }
216
-
217
- .sc-beaufort-summary {
218
- background: var(--n-primary);
219
- color: var(--n-primary-on);
220
- border-radius: 1.5rem;
221
- padding: 2rem;
222
- display: grid;
223
- grid-template-columns: auto 1fr;
224
- gap: 1rem 2rem;
225
- align-items: center;
226
- }
227
-
228
- .sc-force-circle {
229
- width: 80px;
230
- height: 80px;
231
- border-radius: 50%;
232
- background: rgba(255, 255, 255, 0.15);
233
- display: flex;
234
- align-items: center;
235
- justify-content: center;
236
- font-size: 2.5rem;
237
- font-weight: 800;
238
- color: var(--n-primary-on);
239
- flex-shrink: 0;
240
- }
241
-
242
- .sc-force-text-box {
243
- display: flex;
244
- flex-direction: column;
245
- gap: 0.3rem;
246
- }
247
-
248
- .sc-force-name {
249
- margin: 0;
250
- font-size: 1.4rem;
251
- font-weight: 800;
252
- color: var(--n-primary-on);
253
- }
254
-
255
- .sc-force-detail {
256
- margin: 0;
257
- opacity: 0.8;
258
- font-size: 0.9rem;
259
- color: var(--n-primary-on);
260
- }
261
-
262
- .sc-sea-state-box {
263
- grid-column: 1 / -1;
264
- background: rgba(255, 255, 255, 0.1);
265
- border-radius: 1rem;
266
- padding: 1rem 1.5rem;
267
- }
268
-
269
- .sc-sea-text .label {
270
- font-size: 0.7rem;
271
- text-transform: uppercase;
272
- opacity: 0.7;
273
- color: var(--n-primary-on);
274
- font-weight: 700;
275
- }
276
-
277
- .sc-sea-text p {
278
- margin: 0.2rem 0 0;
279
- font-weight: 600;
280
- color: var(--n-primary-on);
281
- }
282
-
283
- .sc-table-container {
284
- background: var(--n-bg);
285
- border: 1px solid var(--n-border);
286
- border-radius: 1.5rem;
287
- overflow: hidden;
288
- }
289
-
290
- .sc-table-container h3 {
291
- padding: 1.5rem;
292
- margin: 0;
293
- font-size: 1rem;
294
- color: var(--n-text-muted);
295
- border-bottom: 1px solid var(--n-border);
296
- font-weight: 700;
297
- }
298
-
299
- .sc-scroll-area {
300
- overflow-x: auto;
301
- }
302
-
303
- .sc-beaufort-table {
304
- width: 100%;
305
- border-collapse: collapse;
306
- }
307
-
308
- .sc-beaufort-table th {
309
- text-align: left;
310
- padding: 0.8rem 1rem;
311
- font-size: 0.75rem;
312
- color: var(--n-text-muted);
313
- text-transform: uppercase;
314
- border-bottom: 2px solid var(--n-border);
315
- }
316
-
317
- .sc-beaufort-table td {
318
- padding: 0.8rem 1rem;
319
- font-size: 0.9rem;
320
- color: var(--n-text-muted);
321
- border-bottom: 1px solid var(--n-border);
322
- }
323
-
324
- .sc-clickable-row {
325
- cursor: pointer;
326
- transition: background 0.15s;
327
- }
328
-
329
- .sc-clickable-row:hover {
330
- background: var(--n-bg-muted);
331
- }
332
-
333
- .sc-clickable-row.active {
334
- background: var(--n-primary);
335
- }
336
-
337
- .sc-clickable-row.active td {
338
- color: var(--n-primary-on);
339
- }
340
-
341
- .sc-force-tag {
342
- background: var(--n-bg-muted);
343
- padding: 0.2rem 0.5rem;
344
- border-radius: 0.4rem;
345
- font-weight: 700;
346
- font-size: 0.85rem;
347
- color: var(--n-text);
348
- }
349
-
350
- .sc-clickable-row.active .sc-force-tag {
351
- background: rgba(255, 255, 255, 0.2);
352
- color: var(--n-primary-on);
353
- }
354
-
355
- @media (max-width: 640px) {
356
- .sc-beaufort-summary {
357
- grid-template-columns: 1fr;
358
- }
359
-
360
- .sc-force-circle {
361
- width: 60px;
362
- height: 60px;
363
- font-size: 2rem;
364
- }
365
- }
366
- </style>
@@ -0,0 +1,239 @@
1
+ .speed-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
+ max-width: 900px;
18
+ margin: 0 auto;
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 2rem;
22
+ }
23
+
24
+ :global(.theme-dark) .speed-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
+ .sc-input-grid {
42
+ display: grid;
43
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
44
+ gap: 1rem;
45
+ background: var(--n-bg);
46
+ border: 1px solid var(--n-border);
47
+ border-radius: 1.5rem;
48
+ padding: 2rem;
49
+ }
50
+
51
+ .sc-input-group {
52
+ display: flex;
53
+ flex-direction: column;
54
+ gap: 0.5rem;
55
+ }
56
+
57
+ .sc-input-group label {
58
+ font-size: 0.8rem;
59
+ font-weight: 600;
60
+ color: var(--n-text-muted);
61
+ text-transform: uppercase;
62
+ }
63
+
64
+ .sc-input-wrapper {
65
+ background: var(--n-bg-muted);
66
+ border: 2px solid var(--n-border);
67
+ border-radius: 0.8rem;
68
+ padding: 0.8rem 1rem;
69
+ transition: border-color 0.2s;
70
+ }
71
+
72
+ .sc-input-wrapper:focus-within {
73
+ border-color: var(--n-cyan);
74
+ }
75
+
76
+ .sc-input-wrapper input {
77
+ background: transparent;
78
+ border: none;
79
+ outline: none;
80
+ color: var(--n-text);
81
+ font-size: 1.5rem;
82
+ font-weight: 800;
83
+ width: 100%;
84
+ }
85
+
86
+ .sc-input-wrapper input::-webkit-outer-spin-button,
87
+ .sc-input-wrapper input::-webkit-inner-spin-button {
88
+ appearance: none;
89
+ }
90
+
91
+ .sc-beaufort-summary {
92
+ background: var(--n-primary);
93
+ color: var(--n-primary-on);
94
+ border-radius: 1.5rem;
95
+ padding: 2rem;
96
+ display: grid;
97
+ grid-template-columns: auto 1fr;
98
+ gap: 1rem 2rem;
99
+ align-items: center;
100
+ }
101
+
102
+ .sc-force-circle {
103
+ width: 80px;
104
+ height: 80px;
105
+ border-radius: 50%;
106
+ background: rgba(255, 255, 255, 0.15);
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ font-size: 2.5rem;
111
+ font-weight: 800;
112
+ color: var(--n-primary-on);
113
+ flex-shrink: 0;
114
+ }
115
+
116
+ .sc-force-text-box {
117
+ display: flex;
118
+ flex-direction: column;
119
+ gap: 0.3rem;
120
+ }
121
+
122
+ .sc-force-name {
123
+ margin: 0;
124
+ font-size: 1.4rem;
125
+ font-weight: 800;
126
+ color: var(--n-primary-on);
127
+ }
128
+
129
+ .sc-force-detail {
130
+ margin: 0;
131
+ opacity: 0.8;
132
+ font-size: 0.9rem;
133
+ color: var(--n-primary-on);
134
+ }
135
+
136
+ .sc-sea-state-box {
137
+ grid-column: 1 / -1;
138
+ background: rgba(255, 255, 255, 0.1);
139
+ border-radius: 1rem;
140
+ padding: 1rem 1.5rem;
141
+ }
142
+
143
+ .sc-sea-text .label {
144
+ font-size: 0.7rem;
145
+ text-transform: uppercase;
146
+ opacity: 0.7;
147
+ color: var(--n-primary-on);
148
+ font-weight: 700;
149
+ }
150
+
151
+ .sc-sea-text p {
152
+ margin: 0.2rem 0 0;
153
+ font-weight: 600;
154
+ color: var(--n-primary-on);
155
+ }
156
+
157
+ .sc-table-container {
158
+ background: var(--n-bg);
159
+ border: 1px solid var(--n-border);
160
+ border-radius: 1.5rem;
161
+ overflow: hidden;
162
+ }
163
+
164
+ .sc-table-container h3 {
165
+ padding: 1.5rem;
166
+ margin: 0;
167
+ font-size: 1rem;
168
+ color: var(--n-text-muted);
169
+ border-bottom: 1px solid var(--n-border);
170
+ font-weight: 700;
171
+ }
172
+
173
+ .sc-scroll-area {
174
+ overflow-x: auto;
175
+ }
176
+
177
+ .sc-beaufort-table {
178
+ width: 100%;
179
+ border-collapse: collapse;
180
+ }
181
+
182
+ .sc-beaufort-table th {
183
+ text-align: left;
184
+ padding: 0.8rem 1rem;
185
+ font-size: 0.75rem;
186
+ color: var(--n-text-muted);
187
+ text-transform: uppercase;
188
+ border-bottom: 2px solid var(--n-border);
189
+ }
190
+
191
+ .sc-beaufort-table td {
192
+ padding: 0.8rem 1rem;
193
+ font-size: 0.9rem;
194
+ color: var(--n-text-muted);
195
+ border-bottom: 1px solid var(--n-border);
196
+ }
197
+
198
+ .sc-clickable-row {
199
+ cursor: pointer;
200
+ transition: background 0.15s;
201
+ }
202
+
203
+ .sc-clickable-row:hover {
204
+ background: var(--n-bg-muted);
205
+ }
206
+
207
+ .sc-clickable-row.active {
208
+ background: var(--n-primary);
209
+ }
210
+
211
+ .sc-clickable-row.active td {
212
+ color: var(--n-primary-on);
213
+ }
214
+
215
+ .sc-force-tag {
216
+ background: var(--n-bg-muted);
217
+ padding: 0.2rem 0.5rem;
218
+ border-radius: 0.4rem;
219
+ font-weight: 700;
220
+ font-size: 0.85rem;
221
+ color: var(--n-text);
222
+ }
223
+
224
+ .sc-clickable-row.active .sc-force-tag {
225
+ background: rgba(255, 255, 255, 0.2);
226
+ color: var(--n-primary-on);
227
+ }
228
+
229
+ @media (max-width: 640px) {
230
+ .sc-beaufort-summary {
231
+ grid-template-columns: 1fr;
232
+ }
233
+
234
+ .sc-force-circle {
235
+ width: 60px;
236
+ height: 60px;
237
+ font-size: 2rem;
238
+ }
239
+ }