@jjlmoya/utils-astronomy 1.12.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.
@@ -377,481 +377,3 @@ const { ui } = Astro.props;
377
377
  setTimeout(render, 50);
378
378
  </script>
379
379
 
380
- <style>
381
- .scope-container {
382
- --on-dark: #fff;
383
- --planet-tint: #fef9c3;
384
-
385
- position: relative;
386
- width: 100%;
387
- height: 600px;
388
- background: var(--color-bg-deep, #000);
389
- border-radius: 1.5rem;
390
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8);
391
- overflow: hidden;
392
- border: 1px solid rgba(100, 116, 139, 0.3);
393
- cursor: grab;
394
- touch-action: none;
395
- user-select: none;
396
- }
397
-
398
- @media (min-width: 768px) {
399
- .scope-container {
400
- height: 800px;
401
- }
402
- }
403
-
404
- .scope-container:active {
405
- cursor: grabbing;
406
- }
407
-
408
- .world-layer {
409
- position: absolute;
410
- inset: 0;
411
- width: 100%;
412
- height: 100%;
413
- will-change: transform;
414
- }
415
-
416
- .sky-canvas {
417
- position: absolute;
418
- inset: 0;
419
- width: 100%;
420
- height: 100%;
421
- z-index: 0;
422
- }
423
-
424
- .objects-layer {
425
- position: absolute;
426
- inset: 0;
427
- width: 100%;
428
- height: 100%;
429
- z-index: 10;
430
- pointer-events: none;
431
- }
432
-
433
- .scope-vignette {
434
- position: absolute;
435
- inset: 0;
436
- background: radial-gradient(
437
- circle at center,
438
- transparent 0%,
439
- rgba(0, 0, 0, 0.5) 100%
440
- );
441
- pointer-events: none;
442
- z-index: 20;
443
- }
444
-
445
- .scope-pollution-layer {
446
- position: absolute;
447
- inset: 0;
448
- z-index: 10;
449
- pointer-events: none;
450
- mix-blend-mode: screen;
451
- background: transparent;
452
- transition: background-color 0.5s ease;
453
- }
454
-
455
- .scope-drag-hint {
456
- position: absolute;
457
- top: 1.5rem;
458
- left: 50%;
459
- transform: translateX(-50%);
460
- z-index: 30;
461
- opacity: 0.7;
462
- pointer-events: none;
463
- background: rgba(0, 0, 0, 0.5);
464
- padding: 0.25rem 1rem;
465
- border-radius: 9999px;
466
- font-size: 0.625rem;
467
- color: var(--on-dark);
468
- text-transform: uppercase;
469
- letter-spacing: 0.1em;
470
- border: 1px solid rgba(255, 255, 255, 0.1);
471
- backdrop-filter: blur(12px);
472
- white-space: nowrap;
473
- }
474
-
475
- .hint-mobile {
476
- display: inline;
477
- }
478
-
479
- .hint-desktop {
480
- display: none;
481
- }
482
-
483
- @media (min-width: 768px) {
484
- .hint-mobile {
485
- display: none;
486
- }
487
- .hint-desktop {
488
- display: inline;
489
- }
490
- }
491
-
492
- :global(.scope-object) {
493
- position: absolute;
494
- transform: translate(-50%, -50%);
495
- display: flex;
496
- flex-direction: column;
497
- align-items: center;
498
- justify-content: center;
499
- transition: opacity 0.3s ease;
500
- will-change: transform;
501
- pointer-events: auto;
502
- cursor: pointer;
503
- }
504
-
505
- :global(.scope-object:hover) :global(.scope-obj-icon) {
506
- transform: scale(1.25);
507
- }
508
-
509
- :global(.scope-obj-icon) {
510
- font-size: 2rem;
511
- transition: transform 0.3s ease;
512
- filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.4));
513
- }
514
-
515
- @media (min-width: 768px) {
516
- :global(.scope-obj-icon) {
517
- font-size: 3rem;
518
- }
519
- }
520
-
521
- :global(.scope-obj-label) {
522
- margin-top: 0.5rem;
523
- display: flex;
524
- flex-direction: column;
525
- align-items: center;
526
- opacity: 0;
527
- transition: opacity 0.3s ease;
528
- }
529
-
530
- :global(.scope-obj-name) {
531
- font-size: 0.625rem;
532
- font-weight: 700;
533
- color: var(--on-dark);
534
- background: rgba(0, 0, 0, 0.6);
535
- padding: 0.125rem 0.5rem;
536
- border-radius: 0.25rem;
537
- backdrop-filter: blur(8px);
538
- border: 1px solid rgba(255, 255, 255, 0.1);
539
- white-space: nowrap;
540
- }
541
-
542
- :global(.scope-obj-mag) {
543
- font-size: 0.5rem;
544
- color: rgba(148, 163, 184, 0.8);
545
- background: rgba(0, 0, 0, 0.8);
546
- padding: 0 0.25rem;
547
- border-radius: 0.2rem;
548
- margin-top: 0.125rem;
549
- }
550
-
551
- .scope-modal {
552
- position: absolute;
553
- inset: 0;
554
- z-index: 50;
555
- display: flex;
556
- align-items: center;
557
- justify-content: center;
558
- background: rgba(0, 0, 0, 0.6);
559
- backdrop-filter: blur(4px);
560
- transition: opacity 0.3s ease;
561
- }
562
-
563
- .scope-modal.modal-hidden {
564
- opacity: 0;
565
- pointer-events: none;
566
- }
567
-
568
- .scope-modal-content {
569
- background: #0f172a;
570
- border: 1px solid rgba(255, 255, 255, 0.2);
571
- padding: 1.5rem;
572
- border-radius: 1rem;
573
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8);
574
- max-width: 22rem;
575
- width: calc(100% - 3rem);
576
- transition: transform 0.3s ease;
577
- }
578
-
579
- .modal-scale-in {
580
- transform: scale(1);
581
- }
582
- .modal-scale-out {
583
- transform: scale(0.95);
584
- }
585
-
586
- .modal-header {
587
- display: flex;
588
- justify-content: space-between;
589
- align-items: flex-start;
590
- margin-bottom: 1rem;
591
- }
592
-
593
- .modal-header-info {
594
- display: flex;
595
- align-items: center;
596
- gap: 0.75rem;
597
- }
598
-
599
- .modal-icon {
600
- font-size: 2.5rem;
601
- }
602
-
603
- .modal-title {
604
- font-size: 1.25rem;
605
- font-weight: 700;
606
- color: var(--on-dark);
607
- margin: 0;
608
- line-height: 1;
609
- }
610
-
611
- .modal-type {
612
- font-size: 0.625rem;
613
- color: var(--text-muted, #94a3b8);
614
- text-transform: uppercase;
615
- letter-spacing: 0.1em;
616
- margin: 0.25rem 0 0;
617
- }
618
-
619
- .modal-close {
620
- background: none;
621
- border: none;
622
- color: var(--text-muted, #94a3b8);
623
- cursor: pointer;
624
- font-size: 1.5rem;
625
- padding: 0;
626
- transition: color 0.2s ease;
627
- }
628
-
629
- .modal-close:hover {
630
- color: var(--on-dark);
631
- }
632
-
633
- .modal-body {
634
- display: flex;
635
- flex-direction: column;
636
- gap: 0.75rem;
637
- }
638
-
639
- .modal-stat {
640
- display: flex;
641
- justify-content: space-between;
642
- align-items: center;
643
- background: rgba(255, 255, 255, 0.05);
644
- padding: 0.75rem;
645
- border-radius: 0.5rem;
646
- }
647
-
648
- .modal-stat-label {
649
- font-size: 0.75rem;
650
- color: var(--text-muted, #94a3b8);
651
- text-transform: uppercase;
652
- }
653
-
654
- .modal-stat-value {
655
- color: var(--on-dark);
656
- font-weight: 700;
657
- }
658
-
659
- .modal-coords {
660
- text-align: right;
661
- }
662
-
663
- .modal-coord {
664
- font-size: 0.75rem;
665
- color: var(--on-dark);
666
- }
667
-
668
- .modal-coord-secondary {
669
- color: var(--text-muted, #94a3b8);
670
- }
671
-
672
- .modal-desc {
673
- font-size: 0.875rem;
674
- color: var(--text-muted, #94a3b8);
675
- line-height: 1.6;
676
- margin: 0;
677
- }
678
-
679
- .scope-controls-wrapper {
680
- position: absolute;
681
- bottom: 1.5rem;
682
- left: 1.5rem;
683
- right: 1.5rem;
684
- z-index: 40;
685
- display: flex;
686
- flex-direction: column;
687
- align-items: center;
688
- gap: 1rem;
689
- pointer-events: auto;
690
- }
691
-
692
- .scope-controls {
693
- width: 100%;
694
- max-width: 56rem;
695
- background: rgba(15, 23, 42, 0.9);
696
- backdrop-filter: blur(20px);
697
- border: 1px solid rgba(255, 255, 255, 0.2);
698
- border-radius: 1rem;
699
- padding: 1rem;
700
- box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
701
- }
702
-
703
- @media (min-width: 768px) {
704
- .scope-controls {
705
- padding: 1.5rem;
706
- }
707
- }
708
-
709
- .scope-control-grid {
710
- display: grid;
711
- grid-template-columns: 1fr;
712
- gap: 1.5rem;
713
- align-items: center;
714
- }
715
-
716
- @media (min-width: 768px) {
717
- .scope-control-grid {
718
- grid-template-columns: 1fr auto 1fr;
719
- gap: 2rem;
720
- }
721
- }
722
-
723
- .scope-control-group {
724
- display: flex;
725
- flex-direction: column;
726
- gap: 0.75rem;
727
- }
728
-
729
- .scope-control-header {
730
- display: flex;
731
- justify-content: space-between;
732
- align-items: center;
733
- }
734
-
735
- .scope-control-label {
736
- font-size: 0.75rem;
737
- font-weight: 700;
738
- text-transform: uppercase;
739
- letter-spacing: 0.05em;
740
- display: flex;
741
- align-items: center;
742
- gap: 0.5rem;
743
- }
744
-
745
- .scope-label-cyan {
746
- color: var(--color-cyan, #06b6d4);
747
- }
748
- .scope-label-amber {
749
- color: var(--color-amber, #f59e0b);
750
- }
751
-
752
- .scope-control-value {
753
- color: var(--on-dark);
754
- font-size: 0.875rem;
755
- background: rgba(255, 255, 255, 0.1);
756
- padding: 0.125rem 0.5rem;
757
- border-radius: 0.25rem;
758
- }
759
-
760
- .scope-range {
761
- width: 100%;
762
- height: 0.375rem;
763
- background: rgba(100, 116, 139, 0.4);
764
- border-radius: 9999px;
765
- appearance: none;
766
- cursor: pointer;
767
- outline: none;
768
- }
769
-
770
- .scope-range-cyan {
771
- accent-color: var(--color-cyan, #06b6d4);
772
- }
773
- .scope-range-amber {
774
- accent-color: var(--color-amber, #f59e0b);
775
- }
776
-
777
- .scope-limit-display {
778
- display: flex;
779
- flex-direction: column;
780
- align-items: center;
781
- justify-content: center;
782
- border-top: 1px solid rgba(255, 255, 255, 0.1);
783
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
784
- padding: 0.5rem 1rem;
785
- }
786
-
787
- @media (min-width: 768px) {
788
- .scope-limit-display {
789
- border-top: none;
790
- border-bottom: none;
791
- border-left: 1px solid rgba(255, 255, 255, 0.1);
792
- border-right: 1px solid rgba(255, 255, 255, 0.1);
793
- padding: 0 2rem;
794
- }
795
- }
796
-
797
- .scope-limit-label {
798
- font-size: 0.625rem;
799
- color: var(--text-muted, #94a3b8);
800
- text-transform: uppercase;
801
- letter-spacing: 0.1em;
802
- margin-bottom: 0.25rem;
803
- }
804
-
805
- .scope-limit-value {
806
- font-size: 3rem;
807
- font-weight: 900;
808
- color: var(--on-dark);
809
- line-height: 1;
810
- text-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
811
- }
812
-
813
- .scope-azimuth {
814
- font-size: 0.625rem;
815
- color: var(--color-cyan, #06b6d4);
816
- opacity: 0.5;
817
- margin-top: 0.5rem;
818
- }
819
-
820
- .scope-legend {
821
- display: flex;
822
- gap: 1rem;
823
- flex-wrap: wrap;
824
- font-size: 0.625rem;
825
- font-weight: 700;
826
- text-transform: uppercase;
827
- letter-spacing: 0.05em;
828
- color: var(--text-muted, #64748b);
829
- background: rgba(0, 0, 0, 0.8);
830
- padding: 0.5rem 1.5rem;
831
- border-radius: 9999px;
832
- backdrop-filter: blur(4px);
833
- border: 1px solid rgba(255, 255, 255, 0.05);
834
- }
835
-
836
- @media (min-width: 768px) {
837
- .scope-legend {
838
- gap: 2rem;
839
- }
840
- }
841
-
842
- .legend-item {
843
- display: flex;
844
- align-items: center;
845
- gap: 0.5rem;
846
- }
847
-
848
- .legend-planet {
849
- color: var(--planet-tint);
850
- }
851
- .legend-star {
852
- color: var(--on-dark);
853
- }
854
- .legend-deep {
855
- color: var(--color-indigo, #818cf8);
856
- }
857
- </style>