@jjlmoya/utils-astronomy 1.12.0 → 1.13.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.
@@ -0,0 +1,317 @@
1
+ .star-calc-wrapper {
2
+ width: 100%;
3
+ max-width: 56rem;
4
+ margin: 0 auto;
5
+ padding: 2rem;
6
+ background: var(--bg-surface);
7
+ border: 1px solid var(--border-base);
8
+ border-radius: 1.5rem;
9
+ box-shadow: 0 25px 50px -12px var(--shadow-base);
10
+ }
11
+
12
+ .star-calc-grid {
13
+ display: grid;
14
+ grid-template-columns: 1fr;
15
+ gap: 2rem;
16
+ }
17
+
18
+ @media (min-width: 768px) {
19
+ .star-calc-grid {
20
+ grid-template-columns: 1fr 1fr;
21
+ gap: 3rem;
22
+ }
23
+ }
24
+
25
+ .star-calc-controls {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: 1.5rem;
29
+ }
30
+
31
+ .star-mode-selector {
32
+ display: flex;
33
+ align-items: center;
34
+ gap: 1rem;
35
+ }
36
+
37
+ .star-mode-label {
38
+ font-size: 0.875rem;
39
+ font-weight: 500;
40
+ color: var(--text-muted, #cbd5e1);
41
+ }
42
+
43
+ .star-toggle-group {
44
+ display: flex;
45
+ background: var(--bg-muted);
46
+ padding: 0.25rem;
47
+ border-radius: 0.75rem;
48
+ border: 1px solid var(--border-base);
49
+ }
50
+
51
+ .star-toggle-btn {
52
+ padding: 0.5rem 1rem;
53
+ border: none;
54
+ background: transparent;
55
+ color: var(--text-muted, #94a3b8);
56
+ cursor: pointer;
57
+ border-radius: 0.5rem;
58
+ font-weight: 600;
59
+ font-size: 0.875rem;
60
+ transition: all 0.2s ease;
61
+ }
62
+
63
+ .star-toggle-btn.active {
64
+ background: var(--color-amber, #f59e0b);
65
+ color: var(--color-bg-deep, #0f172a);
66
+ box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
67
+ }
68
+
69
+ .star-control-group {
70
+ display: flex;
71
+ flex-direction: column;
72
+ gap: 0.75rem;
73
+ }
74
+
75
+ .star-control-label {
76
+ font-size: 0.9rem;
77
+ font-weight: 500;
78
+ color: var(--text-muted, #cbd5e1);
79
+ display: flex;
80
+ justify-content: space-between;
81
+ }
82
+
83
+ .star-stepper {
84
+ display: flex;
85
+ align-items: center;
86
+ background: var(--bg-muted);
87
+ border: 1px solid var(--border-base);
88
+ border-radius: 0.75rem;
89
+ overflow: hidden;
90
+ }
91
+
92
+ .star-step-btn {
93
+ width: 4rem;
94
+ height: 3.5rem;
95
+ border: none;
96
+ background: var(--bg-muted);
97
+ color: var(--color-amber, #f59e0b);
98
+ font-size: 1.5rem;
99
+ cursor: pointer;
100
+ transition: background 0.2s ease;
101
+ }
102
+
103
+ .star-step-btn:hover {
104
+ background: var(--bg-page);
105
+ }
106
+
107
+ .star-stepper-input {
108
+ flex: 1;
109
+ background: transparent;
110
+ border: none;
111
+ color: var(--text-base);
112
+ text-align: center;
113
+ font-size: 1.25rem;
114
+ font-weight: 600;
115
+ outline: none;
116
+ width: 100%;
117
+ }
118
+
119
+ .star-select-wrapper {
120
+ position: relative;
121
+ width: 100%;
122
+ }
123
+
124
+ .star-select-arrow {
125
+ position: absolute;
126
+ right: 0.875rem;
127
+ top: 50%;
128
+ transform: translateY(-50%);
129
+ width: 1rem;
130
+ height: 1rem;
131
+ color: var(--color-amber, #f59e0b);
132
+ pointer-events: none;
133
+ }
134
+
135
+ .star-select {
136
+ appearance: none;
137
+ -webkit-appearance: none;
138
+ width: 100%;
139
+ background: var(--bg-muted);
140
+ border: 1px solid var(--border-base);
141
+ color: var(--text-base);
142
+ padding: 0.875rem 3rem 0.875rem 1rem;
143
+ border-radius: 0.75rem;
144
+ font-size: 0.95rem;
145
+ outline: none;
146
+ cursor: pointer;
147
+ transition: border-color 0.2s ease;
148
+ }
149
+
150
+ .star-select:hover {
151
+ border-color: var(--text-muted);
152
+ }
153
+
154
+ .star-select:focus {
155
+ border-color: var(--color-amber, #f59e0b);
156
+ }
157
+
158
+ .star-select option {
159
+ background: var(--bg-surface);
160
+ color: var(--text-base);
161
+ }
162
+
163
+ .star-range {
164
+ width: 100%;
165
+ accent-color: var(--color-amber, #f59e0b);
166
+ height: 6px;
167
+ border-radius: 3px;
168
+ cursor: pointer;
169
+ }
170
+
171
+ .star-range-labels {
172
+ display: flex;
173
+ justify-content: space-between;
174
+ font-size: 0.75rem;
175
+ color: var(--text-muted, #64748b);
176
+ }
177
+
178
+ .star-npf-controls {
179
+ display: none;
180
+ flex-direction: column;
181
+ gap: 1.5rem;
182
+ animation: star-fade-in 0.3s ease;
183
+ }
184
+
185
+ @keyframes star-fade-in {
186
+ from {
187
+ opacity: 0;
188
+ transform: translateY(-10px);
189
+ }
190
+ to {
191
+ opacity: 1;
192
+ transform: translateY(0);
193
+ }
194
+ }
195
+
196
+ .star-results {
197
+ display: flex;
198
+ flex-direction: column;
199
+ gap: 2rem;
200
+ justify-content: center;
201
+ }
202
+
203
+ .star-result-main {
204
+ text-align: center;
205
+ background: var(--bg-muted);
206
+ padding: 2rem;
207
+ border-radius: 1.5rem;
208
+ border: 1px solid var(--border-base);
209
+ }
210
+
211
+ .star-time-display {
212
+ display: flex;
213
+ flex-direction: column;
214
+ align-items: center;
215
+ margin-bottom: 1rem;
216
+ }
217
+
218
+ .star-time-value {
219
+ font-size: 5rem;
220
+ font-weight: 800;
221
+ color: var(--color-amber, #f59e0b);
222
+ line-height: 1;
223
+ text-shadow: 0 0 30px rgba(245, 158, 11, 0.3);
224
+ }
225
+
226
+ .star-time-unit {
227
+ font-size: 1.25rem;
228
+ color: var(--text-muted, #94a3b8);
229
+ text-transform: uppercase;
230
+ letter-spacing: 0.1em;
231
+ margin-top: 0.5rem;
232
+ }
233
+
234
+ .star-result-text {
235
+ font-size: 0.95rem;
236
+ color: var(--text-muted, #94a3b8);
237
+ margin: 0;
238
+ }
239
+
240
+ .star-simulation {
241
+ background: var(--bg-muted);
242
+ padding: 1.5rem;
243
+ border-radius: 1rem;
244
+ border: 1px solid var(--border-base);
245
+ }
246
+
247
+ .star-sim-label {
248
+ display: block;
249
+ font-size: 0.85rem;
250
+ color: var(--text-muted, #94a3b8);
251
+ margin-bottom: 1rem;
252
+ text-align: center;
253
+ }
254
+
255
+ .star-sim-container {
256
+ height: 100px;
257
+ background: radial-gradient(circle at center, #0f172a 0%, #020617 100%);
258
+ border-radius: 0.5rem;
259
+ position: relative;
260
+ display: flex;
261
+ align-items: center;
262
+ justify-content: center;
263
+ overflow: hidden;
264
+ margin-bottom: 1rem;
265
+ }
266
+
267
+ .star-sim-view {
268
+ position: relative;
269
+ width: 100%;
270
+ height: 100%;
271
+ display: flex;
272
+ align-items: center;
273
+ justify-content: center;
274
+ }
275
+
276
+ .star-point {
277
+ height: 4px;
278
+ width: 4px;
279
+ background: white;
280
+ border-radius: 50%;
281
+ box-shadow: 0 0 10px white;
282
+ transition: width 0.3s ease, border-radius 0.3s ease;
283
+ }
284
+
285
+ .star-point.is-trail {
286
+ background: linear-gradient(90deg, white, rgba(255, 255, 255, 0.1));
287
+ }
288
+
289
+ .star-center-marker {
290
+ position: absolute;
291
+ color: rgba(245, 158, 11, 0.3);
292
+ font-size: 1.5rem;
293
+ pointer-events: none;
294
+ }
295
+
296
+ .star-sim-info-row {
297
+ text-align: center;
298
+ font-size: 0.85rem;
299
+ }
300
+
301
+ .star-sim-info {
302
+ color: var(--color-amber, #f59e0b);
303
+ font-weight: 500;
304
+ }
305
+
306
+ .star-sim-range-wrapper {
307
+ margin-top: 1rem;
308
+ display: flex;
309
+ flex-direction: column;
310
+ gap: 0.5rem;
311
+ }
312
+
313
+ .star-sim-range-label {
314
+ font-size: 0.75rem;
315
+ color: var(--text-muted, #64748b);
316
+ text-align: center;
317
+ }
@@ -247,322 +247,3 @@ const { ui } = Astro.props;
247
247
  new StarCalculatorApp();
248
248
  </script>
249
249
 
250
- <style>
251
- .star-calc-wrapper {
252
- width: 100%;
253
- max-width: 56rem;
254
- margin: 0 auto;
255
- padding: 2rem;
256
- background: var(--bg-surface);
257
- border: 1px solid var(--border-base);
258
- border-radius: 1.5rem;
259
- box-shadow: 0 25px 50px -12px var(--shadow-base);
260
- }
261
-
262
- .star-calc-grid {
263
- display: grid;
264
- grid-template-columns: 1fr;
265
- gap: 2rem;
266
- }
267
-
268
- @media (min-width: 768px) {
269
- .star-calc-grid {
270
- grid-template-columns: 1fr 1fr;
271
- gap: 3rem;
272
- }
273
- }
274
-
275
- .star-calc-controls {
276
- display: flex;
277
- flex-direction: column;
278
- gap: 1.5rem;
279
- }
280
-
281
- .star-mode-selector {
282
- display: flex;
283
- align-items: center;
284
- gap: 1rem;
285
- }
286
-
287
- .star-mode-label {
288
- font-size: 0.875rem;
289
- font-weight: 500;
290
- color: var(--text-muted, #cbd5e1);
291
- }
292
-
293
- .star-toggle-group {
294
- display: flex;
295
- background: var(--bg-muted);
296
- padding: 0.25rem;
297
- border-radius: 0.75rem;
298
- border: 1px solid var(--border-base);
299
- }
300
-
301
- .star-toggle-btn {
302
- padding: 0.5rem 1rem;
303
- border: none;
304
- background: transparent;
305
- color: var(--text-muted, #94a3b8);
306
- cursor: pointer;
307
- border-radius: 0.5rem;
308
- font-weight: 600;
309
- font-size: 0.875rem;
310
- transition: all 0.2s ease;
311
- }
312
-
313
- .star-toggle-btn.active {
314
- background: var(--color-amber, #f59e0b);
315
- color: var(--color-bg-deep, #0f172a);
316
- box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
317
- }
318
-
319
- .star-control-group {
320
- display: flex;
321
- flex-direction: column;
322
- gap: 0.75rem;
323
- }
324
-
325
- .star-control-label {
326
- font-size: 0.9rem;
327
- font-weight: 500;
328
- color: var(--text-muted, #cbd5e1);
329
- display: flex;
330
- justify-content: space-between;
331
- }
332
-
333
- .star-stepper {
334
- display: flex;
335
- align-items: center;
336
- background: var(--bg-muted);
337
- border: 1px solid var(--border-base);
338
- border-radius: 0.75rem;
339
- overflow: hidden;
340
- }
341
-
342
- .star-step-btn {
343
- width: 4rem;
344
- height: 3.5rem;
345
- border: none;
346
- background: var(--bg-muted);
347
- color: var(--color-amber, #f59e0b);
348
- font-size: 1.5rem;
349
- cursor: pointer;
350
- transition: background 0.2s ease;
351
- }
352
-
353
- .star-step-btn:hover {
354
- background: var(--bg-page);
355
- }
356
-
357
- .star-stepper-input {
358
- flex: 1;
359
- background: transparent;
360
- border: none;
361
- color: var(--text-base);
362
- text-align: center;
363
- font-size: 1.25rem;
364
- font-weight: 600;
365
- outline: none;
366
- width: 100%;
367
- }
368
-
369
- .star-select-wrapper {
370
- position: relative;
371
- width: 100%;
372
- }
373
-
374
- .star-select-arrow {
375
- position: absolute;
376
- right: 0.875rem;
377
- top: 50%;
378
- transform: translateY(-50%);
379
- width: 1rem;
380
- height: 1rem;
381
- color: var(--color-amber, #f59e0b);
382
- pointer-events: none;
383
- }
384
-
385
- .star-select {
386
- appearance: none;
387
- -webkit-appearance: none;
388
- width: 100%;
389
- background: var(--bg-muted);
390
- border: 1px solid var(--border-base);
391
- color: var(--text-base);
392
- padding: 0.875rem 3rem 0.875rem 1rem;
393
- border-radius: 0.75rem;
394
- font-size: 0.95rem;
395
- outline: none;
396
- cursor: pointer;
397
- transition: border-color 0.2s ease;
398
- }
399
-
400
- .star-select:hover {
401
- border-color: var(--text-muted);
402
- }
403
-
404
- .star-select:focus {
405
- border-color: var(--color-amber, #f59e0b);
406
- }
407
-
408
- .star-select option {
409
- background: var(--bg-surface);
410
- color: var(--text-base);
411
- }
412
-
413
- .star-range {
414
- width: 100%;
415
- accent-color: var(--color-amber, #f59e0b);
416
- height: 6px;
417
- border-radius: 3px;
418
- cursor: pointer;
419
- }
420
-
421
- .star-range-labels {
422
- display: flex;
423
- justify-content: space-between;
424
- font-size: 0.75rem;
425
- color: var(--text-muted, #64748b);
426
- }
427
-
428
- .star-npf-controls {
429
- display: none;
430
- flex-direction: column;
431
- gap: 1.5rem;
432
- animation: star-fade-in 0.3s ease;
433
- }
434
-
435
- @keyframes star-fade-in {
436
- from {
437
- opacity: 0;
438
- transform: translateY(-10px);
439
- }
440
- to {
441
- opacity: 1;
442
- transform: translateY(0);
443
- }
444
- }
445
-
446
- .star-results {
447
- display: flex;
448
- flex-direction: column;
449
- gap: 2rem;
450
- justify-content: center;
451
- }
452
-
453
- .star-result-main {
454
- text-align: center;
455
- background: var(--bg-muted);
456
- padding: 2rem;
457
- border-radius: 1.5rem;
458
- border: 1px solid var(--border-base);
459
- }
460
-
461
- .star-time-display {
462
- display: flex;
463
- flex-direction: column;
464
- align-items: center;
465
- margin-bottom: 1rem;
466
- }
467
-
468
- .star-time-value {
469
- font-size: 5rem;
470
- font-weight: 800;
471
- color: var(--color-amber, #f59e0b);
472
- line-height: 1;
473
- text-shadow: 0 0 30px rgba(245, 158, 11, 0.3);
474
- }
475
-
476
- .star-time-unit {
477
- font-size: 1.25rem;
478
- color: var(--text-muted, #94a3b8);
479
- text-transform: uppercase;
480
- letter-spacing: 0.1em;
481
- margin-top: 0.5rem;
482
- }
483
-
484
- .star-result-text {
485
- font-size: 0.95rem;
486
- color: var(--text-muted, #94a3b8);
487
- margin: 0;
488
- }
489
-
490
- .star-simulation {
491
- background: var(--bg-muted);
492
- padding: 1.5rem;
493
- border-radius: 1rem;
494
- border: 1px solid var(--border-base);
495
- }
496
-
497
- .star-sim-label {
498
- display: block;
499
- font-size: 0.85rem;
500
- color: var(--text-muted, #94a3b8);
501
- margin-bottom: 1rem;
502
- text-align: center;
503
- }
504
-
505
- .star-sim-container {
506
- height: 100px;
507
- background: radial-gradient(circle at center, #0f172a 0%, #020617 100%);
508
- border-radius: 0.5rem;
509
- position: relative;
510
- display: flex;
511
- align-items: center;
512
- justify-content: center;
513
- overflow: hidden;
514
- margin-bottom: 1rem;
515
- }
516
-
517
- .star-sim-view {
518
- position: relative;
519
- width: 100%;
520
- height: 100%;
521
- display: flex;
522
- align-items: center;
523
- justify-content: center;
524
- }
525
-
526
- .star-point {
527
- height: 4px;
528
- width: 4px;
529
- background: white;
530
- border-radius: 50%;
531
- box-shadow: 0 0 10px white;
532
- transition: width 0.3s ease, border-radius 0.3s ease;
533
- }
534
-
535
- .star-point.is-trail {
536
- background: linear-gradient(90deg, white, rgba(255, 255, 255, 0.1));
537
- }
538
-
539
- .star-center-marker {
540
- position: absolute;
541
- color: rgba(245, 158, 11, 0.3);
542
- font-size: 1.5rem;
543
- pointer-events: none;
544
- }
545
-
546
- .star-sim-info-row {
547
- text-align: center;
548
- font-size: 0.85rem;
549
- }
550
-
551
- .star-sim-info {
552
- color: var(--color-amber, #f59e0b);
553
- font-weight: 500;
554
- }
555
-
556
- .star-sim-range-wrapper {
557
- margin-top: 1rem;
558
- display: flex;
559
- flex-direction: column;
560
- gap: 0.5rem;
561
- }
562
-
563
- .star-sim-range-label {
564
- font-size: 0.75rem;
565
- color: var(--text-muted, #64748b);
566
- text-align: center;
567
- }
568
- </style>