@jjlmoya/utils-science 1.17.0 → 1.19.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.
@@ -361,460 +361,3 @@ const { ui } = Astro.props;
361
361
  resizeCanvas();
362
362
  </script>
363
363
 
364
- <style>
365
- :root {
366
- --colony-primary: #14b8a6;
367
- --colony-secondary: #a855f7;
368
- --colony-accent: #64748b;
369
- --colony-danger: #ef4444;
370
- --colony-danger-dark: #dc2626;
371
- --colony-danger-light: #fca5a5;
372
- --colony-bg-light: #f8fafc;
373
- --colony-bg-dark: #0f172a;
374
- --colony-bg-card: #fff;
375
- --colony-bg-modal: rgba(255, 255, 255, 0.9);
376
- --colony-border-light: #e2e8f0;
377
- --colony-border-dark: #1e293b;
378
- --colony-text-primary: #1e293b;
379
- --colony-text-secondary: #64748b;
380
- --colony-text-light: #f1f5f9;
381
- }
382
-
383
- :global(.theme-dark) {
384
- --colony-bg-light: #0f172a;
385
- --colony-bg-card: #1e293b;
386
- --colony-bg-modal: rgba(30, 41, 59, 0.9);
387
- --colony-border-light: #334155;
388
- --colony-text-primary: #f1f5f9;
389
- --colony-text-secondary: #cbd5e1;
390
- }
391
-
392
- .colony-container {
393
- width: 100%;
394
- max-width: 100%;
395
- margin: 0 auto;
396
- }
397
-
398
- .colony-main-card {
399
- width: 100%;
400
- background: var(--colony-bg-card);
401
- border-radius: 1.5rem;
402
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
403
- overflow: hidden;
404
- border: 1px solid var(--colony-border-light);
405
- transition: all 0.2s ease;
406
- animation: colony-fade-in 0.3s ease-in-out;
407
- }
408
-
409
- .colony-grid {
410
- display: grid;
411
- grid-template-columns: 1fr;
412
- gap: 0;
413
- }
414
-
415
- @media (min-width: 1024px) {
416
- .colony-grid {
417
- grid-template-columns: 2fr 1fr;
418
- }
419
- }
420
-
421
- .colony-canvas-section {
422
- padding: 1.5rem;
423
- background: var(--colony-bg-light);
424
- display: flex;
425
- align-items: center;
426
- justify-content: center;
427
- min-height: 400px;
428
- }
429
-
430
- @media (min-width: 768px) {
431
- .colony-canvas-section {
432
- padding: 2.5rem;
433
- }
434
- }
435
-
436
- .colony-canvas-wrapper {
437
- position: relative;
438
- width: 100%;
439
- aspect-ratio: 1;
440
- max-width: 500px;
441
- }
442
-
443
- .colony-hidden {
444
- display: none;
445
- }
446
-
447
- .colony-upload-prompt {
448
- width: 100%;
449
- height: 100%;
450
- border-radius: 100%;
451
- border: 4px dashed var(--colony-border-light);
452
- background: var(--colony-bg-card);
453
- cursor: pointer;
454
- display: flex;
455
- flex-direction: column;
456
- align-items: center;
457
- justify-content: center;
458
- gap: 1rem;
459
- transition: all 0.3s ease;
460
- padding: 2rem;
461
- }
462
-
463
- .colony-upload-prompt:hover {
464
- border-color: var(--colony-primary);
465
- background: var(--colony-bg-light);
466
- }
467
-
468
- .colony-upload-icon {
469
- font-size: 3rem;
470
- color: var(--colony-text-secondary);
471
- }
472
-
473
- .colony-upload-text {
474
- text-align: center;
475
- padding: 0 1.5rem;
476
- }
477
-
478
- .colony-upload-title {
479
- font-size: 1.25rem;
480
- font-weight: 700;
481
- color: var(--colony-text-primary);
482
- margin-bottom: 0.5rem;
483
- }
484
-
485
- .colony-upload-subtitle {
486
- font-size: 0.875rem;
487
- color: var(--colony-text-secondary);
488
- }
489
-
490
- .colony-petri-canvas {
491
- position: absolute;
492
- inset: 0;
493
- width: 100%;
494
- height: 100%;
495
- border-radius: 100%;
496
- border: 4px solid var(--colony-border-light);
497
- cursor: crosshair;
498
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
499
- }
500
-
501
- .colony-mode-indicator {
502
- position: absolute;
503
- top: 1rem;
504
- left: 1rem;
505
- background: var(--colony-bg-modal);
506
- padding: 0.75rem;
507
- border-radius: 0.5rem;
508
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
509
- backdrop-filter: blur(4px);
510
- }
511
-
512
- .colony-mode-label {
513
- font-size: 0.75rem;
514
- font-weight: 700;
515
- color: var(--colony-text-secondary);
516
- text-transform: uppercase;
517
- letter-spacing: 0.05em;
518
- margin-bottom: 0.25rem;
519
- }
520
-
521
- .colony-mode-value {
522
- font-size: 1.125rem;
523
- font-weight: 900;
524
- letter-spacing: 0.025em;
525
- }
526
-
527
- .colony-mode-a {
528
- color: var(--colony-primary);
529
- }
530
-
531
- .colony-mode-b {
532
- color: var(--colony-secondary);
533
- }
534
-
535
- .colony-control-panel {
536
- padding: 1.5rem;
537
- border-left: 1px solid var(--colony-border-light);
538
- display: flex;
539
- flex-direction: column;
540
- gap: 1.5rem;
541
- background: var(--colony-bg-card);
542
- }
543
-
544
- @media (min-width: 768px) {
545
- .colony-control-panel {
546
- padding: 2rem;
547
- }
548
- }
549
-
550
- @media (max-width: 1023px) {
551
- .colony-control-panel {
552
- border-left: none;
553
- border-top: 1px solid var(--colony-border-light);
554
- }
555
- }
556
-
557
- .colony-control-section {
558
- display: flex;
559
- flex-direction: column;
560
- gap: 1rem;
561
- }
562
-
563
- .colony-button-section {
564
- gap: 0.75rem;
565
- }
566
-
567
- .colony-control-title {
568
- font-size: 0.875rem;
569
- font-weight: 700;
570
- text-transform: uppercase;
571
- letter-spacing: 0.05em;
572
- color: var(--colony-text-secondary);
573
- }
574
-
575
- .colony-button-grid {
576
- display: grid;
577
- grid-template-columns: 1fr 1fr;
578
- gap: 0.75rem;
579
- }
580
-
581
- .colony-mode-btn {
582
- padding: 0.75rem 1rem;
583
- border-radius: 0.75rem;
584
- border: 2px solid var(--colony-border-light);
585
- background: var(--colony-bg-light);
586
- color: var(--colony-text-secondary);
587
- font-weight: 700;
588
- font-size: 0.875rem;
589
- cursor: pointer;
590
- display: flex;
591
- align-items: center;
592
- justify-content: center;
593
- gap: 0.5rem;
594
- transition: all 0.2s ease;
595
- }
596
-
597
- .colony-mode-btn:hover {
598
- transform: scale(1.05);
599
- }
600
-
601
- .colony-mode-btn-active {
602
- border-color: var(--colony-primary);
603
- background: color-mix(in srgb, var(--colony-primary) 10%, white);
604
- color: var(--colony-primary);
605
- }
606
-
607
- :global(.theme-dark) .colony-mode-btn-active {
608
- background: color-mix(in srgb, var(--colony-primary) 15%, var(--colony-bg-light));
609
- }
610
-
611
- .colony-color-dot {
612
- width: 1rem;
613
- height: 1rem;
614
- border-radius: 50%;
615
- display: inline-block;
616
- }
617
-
618
- .colony-color-a {
619
- background: var(--colony-primary);
620
- }
621
-
622
- .colony-color-b {
623
- background: var(--colony-secondary);
624
- }
625
-
626
- .colony-count-grid {
627
- display: grid;
628
- grid-template-columns: 1fr 1fr;
629
- gap: 1rem;
630
- }
631
-
632
- .colony-count-box {
633
- padding: 1rem;
634
- border-radius: 1rem;
635
- border: 1px solid var(--colony-border-light);
636
- transition: all 0.2s ease;
637
- }
638
-
639
- .colony-count-box-a {
640
- background: color-mix(in srgb, var(--colony-primary) 5%, var(--colony-bg-card));
641
- border-color: color-mix(in srgb, var(--colony-primary) 20%, var(--colony-border-light));
642
- }
643
-
644
- .colony-count-box-b {
645
- background: color-mix(in srgb, var(--colony-secondary) 5%, var(--colony-bg-card));
646
- border-color: color-mix(in srgb, var(--colony-secondary) 20%, var(--colony-border-light));
647
- }
648
-
649
- .colony-count-label {
650
- font-size: 0.75rem;
651
- font-weight: 700;
652
- text-transform: uppercase;
653
- letter-spacing: 0.05em;
654
- margin-bottom: 0.25rem;
655
- }
656
-
657
- .colony-count-label-a {
658
- color: var(--colony-primary);
659
- }
660
-
661
- .colony-count-label-b {
662
- color: var(--colony-secondary);
663
- }
664
-
665
- .colony-count-value {
666
- font-size: 2.25rem;
667
- font-weight: 900;
668
- letter-spacing: 0.025em;
669
- color: var(--colony-text-primary);
670
- }
671
-
672
- .colony-count-total {
673
- background: var(--colony-bg-light);
674
- padding: 1rem;
675
- border-radius: 1rem;
676
- border: 1px solid var(--colony-border-light);
677
- grid-column: 1 / -1;
678
- }
679
-
680
- .colony-count-label-total {
681
- font-size: 0.75rem;
682
- font-weight: 700;
683
- text-transform: uppercase;
684
- letter-spacing: 0.05em;
685
- color: var(--colony-text-secondary);
686
- margin-bottom: 0.25rem;
687
- }
688
-
689
- .colony-count-value-total {
690
- font-size: 3rem;
691
- font-weight: 900;
692
- letter-spacing: 0.025em;
693
- color: var(--colony-text-primary);
694
- }
695
-
696
- .colony-divider {
697
- height: 1px;
698
- background: var(--colony-border-light);
699
- }
700
-
701
- .colony-action-btn {
702
- width: 100%;
703
- padding: 0.75rem 1rem;
704
- border-radius: 0.75rem;
705
- border: 2px solid transparent;
706
- font-weight: 700;
707
- font-size: 0.875rem;
708
- cursor: pointer;
709
- display: flex;
710
- align-items: center;
711
- justify-content: center;
712
- gap: 0.5rem;
713
- transition: all 0.2s ease;
714
- }
715
-
716
- .colony-undo-btn {
717
- background: var(--colony-bg-light);
718
- border-color: var(--colony-border-light);
719
- color: var(--colony-text-primary);
720
- }
721
-
722
- .colony-undo-btn:hover {
723
- background: var(--colony-bg-light);
724
- border-color: var(--colony-accent);
725
- }
726
-
727
- .colony-clear-btn {
728
- background: color-mix(in srgb, var(--colony-danger) 5%, var(--colony-bg-card));
729
- border-color: color-mix(in srgb, var(--colony-danger) 20%, var(--colony-border-light));
730
- color: var(--colony-danger-dark);
731
- }
732
-
733
- .colony-clear-btn:hover {
734
- background: color-mix(in srgb, var(--colony-danger) 10%, var(--colony-bg-card));
735
- border-color: color-mix(in srgb, var(--colony-danger) 40%, var(--colony-border-light));
736
- }
737
-
738
- :global(.theme-dark) .colony-clear-btn {
739
- color: var(--colony-danger-light);
740
- }
741
-
742
- .colony-btn-icon {
743
- font-size: 1.25rem;
744
- }
745
-
746
- .colony-info-text {
747
- font-size: 0.875rem;
748
- color: var(--colony-text-secondary);
749
- display: flex;
750
- flex-direction: column;
751
- gap: 0.5rem;
752
- padding-top: 0.5rem;
753
- }
754
-
755
- .colony-info-text p {
756
- margin: 0;
757
- display: flex;
758
- align-items: center;
759
- gap: 0.5rem;
760
- }
761
-
762
- .colony-info-icon {
763
- font-size: 1rem;
764
- flex-shrink: 0;
765
- }
766
-
767
- @media (max-width: 768px) {
768
- .colony-canvas-section {
769
- min-height: 300px;
770
- padding: 1rem;
771
- }
772
-
773
- .colony-canvas-wrapper {
774
- max-width: 100%;
775
- }
776
-
777
- .colony-control-panel {
778
- padding: 1rem;
779
- }
780
-
781
- .colony-upload-title {
782
- font-size: 1rem;
783
- }
784
-
785
- .colony-upload-subtitle {
786
- font-size: 0.75rem;
787
- }
788
-
789
- .colony-mode-btn {
790
- padding: 0.625rem 0.75rem;
791
- font-size: 0.75rem;
792
- }
793
-
794
- .colony-count-value {
795
- font-size: 1.875rem;
796
- }
797
-
798
- .colony-count-value-total {
799
- font-size: 2.25rem;
800
- }
801
-
802
- .colony-action-btn {
803
- padding: 0.625rem;
804
- font-size: 0.75rem;
805
- }
806
-
807
- .colony-info-text {
808
- font-size: 0.75rem;
809
- }
810
- }
811
-
812
- @keyframes colony-fade-in {
813
- from {
814
- opacity: 0;
815
- }
816
- to {
817
- opacity: 1;
818
- }
819
- }
820
- </style>