@jjlmoya/utils-alcohol 1.23.0 → 1.24.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.
@@ -267,665 +267,4 @@ const { ui } = Astro.props;
267
267
  new PartyApp();
268
268
  </script>
269
269
 
270
- <style>
271
- .party-app {
272
- width: 100%;
273
- max-width: 72rem;
274
- margin: 0 auto;
275
- padding: 0.25rem;
276
- user-select: none;
277
- color: #1e293b;
278
- }
279
-
280
- .party-card {
281
- position: relative;
282
- border-radius: 1.5rem;
283
- overflow: hidden;
284
- background: rgba(255,255,255,0.9);
285
- backdrop-filter: blur(12px);
286
- border: 1px solid rgba(255,255,255,0.4);
287
- box-shadow: 0 10px 30px rgba(0,0,0,0.1);
288
- }
289
-
290
- :global(.theme-dark) .party-card {
291
- background: rgba(15,23,42,0.9);
292
- border-color: rgba(255,255,255,0.1);
293
- }
294
-
295
- .party-deco {
296
- position: absolute;
297
- width: 24rem;
298
- height: 24rem;
299
- border-radius: 50%;
300
- pointer-events: none;
301
- filter: blur(3rem);
302
- }
303
-
304
- .party-deco-top {
305
- top: 0;
306
- right: 0;
307
- transform: translate(50%, -50%);
308
- background: rgba(251,191,36,0.3);
309
- }
310
-
311
- .party-deco-bottom {
312
- bottom: 0;
313
- left: 0;
314
- transform: translate(-50%, 50%);
315
- background: rgba(34,211,238,0.3);
316
- }
317
-
318
- .party-grid {
319
- display: grid;
320
- position: relative;
321
- z-index: 1;
322
- }
323
-
324
- @media (min-width: 1280px) {
325
- .party-grid {
326
- grid-template-columns: 5fr 7fr;
327
- }
328
- }
329
-
330
- .party-inputs {
331
- padding: 2rem 2.5rem;
332
- display: flex;
333
- flex-direction: column;
334
- gap: 2.5rem;
335
- background: rgba(255,255,255,0.4);
336
- }
337
-
338
- @media (min-width: 1280px) {
339
- .party-inputs {
340
- border-right: 1px solid #e2e8f0;
341
- }
342
- }
343
-
344
- :global(.theme-dark) .party-inputs {
345
- background: rgba(255,255,255,0.03);
346
- border-color: #1e293b;
347
- }
348
-
349
- .calc-header {
350
- display: flex;
351
- align-items: center;
352
- gap: 0.75rem;
353
- }
354
-
355
- .calc-header-icon {
356
- width: 2.5rem;
357
- height: 2.5rem;
358
- border-radius: 50%;
359
- flex-shrink: 0;
360
- background: linear-gradient(to bottom right, #fbbf24, #f97316);
361
- display: flex;
362
- align-items: center;
363
- justify-content: center;
364
- box-shadow: 0 4px 12px rgba(251,191,36,0.3);
365
- color: #fff;
366
- }
367
-
368
- .calc-header-icon-svg {
369
- width: 1.5rem;
370
- height: 1.5rem;
371
- }
372
-
373
- .calc-title {
374
- font-weight: 700;
375
- font-size: 1.25rem;
376
- margin: 0;
377
- line-height: 1;
378
- color: #1e293b;
379
- }
380
-
381
- :global(.theme-dark) .calc-title {
382
- color: #f1f5f9;
383
- }
384
-
385
- .calc-subtitle {
386
- color: #64748b;
387
- font-size: 0.75rem;
388
- text-transform: uppercase;
389
- letter-spacing: 0.05em;
390
- margin: 0.25rem 0 0;
391
- }
392
-
393
- .slider-section {
394
- display: flex;
395
- flex-direction: column;
396
- gap: 1rem;
397
- }
398
-
399
- .slider-header {
400
- display: flex;
401
- justify-content: space-between;
402
- align-items: flex-end;
403
- }
404
-
405
- .slider-lbl {
406
- color: #475569;
407
- font-size: 0.875rem;
408
- font-weight: 700;
409
- text-transform: uppercase;
410
- letter-spacing: 0.05em;
411
- }
412
-
413
- .slider-val {
414
- font-size: 1.875rem;
415
- font-weight: 300;
416
- color: #0f172a;
417
- letter-spacing: -0.05em;
418
- }
419
-
420
- :global(.theme-dark) .slider-val {
421
- color: #f1f5f9;
422
- }
423
-
424
- .slider-val-unit {
425
- display: flex;
426
- align-items: baseline;
427
- gap: 0.25rem;
428
- }
429
-
430
- .slider-unit {
431
- font-size: 0.875rem;
432
- color: #64748b;
433
- font-weight: 700;
434
- text-transform: uppercase;
435
- }
436
-
437
- .custom-slider-wrap {
438
- position: relative;
439
- height: 3rem;
440
- background: #f1f5f9;
441
- border-radius: 0.75rem;
442
- border: 1px solid #e2e8f0;
443
- box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
444
- display: flex;
445
- align-items: center;
446
- padding: 0 0.5rem;
447
- cursor: pointer;
448
- }
449
-
450
- :global(.theme-dark) .custom-slider-wrap {
451
- background: #1e293b;
452
- border-color: #334155;
453
- }
454
-
455
- .custom-range {
456
- position: absolute;
457
- inset: 0;
458
- width: 100%;
459
- height: 100%;
460
- opacity: 0;
461
- z-index: 3;
462
- cursor: pointer;
463
- margin: 0;
464
- }
465
-
466
- .slider-track-fill {
467
- position: absolute;
468
- left: 0.5rem;
469
- top: 0.5rem;
470
- bottom: 0.5rem;
471
- border-radius: 0.5rem;
472
- z-index: 1;
473
- box-shadow: 0 1px 3px rgba(0,0,0,0.1);
474
- transition: width 0.1s;
475
- }
476
-
477
- .slider-fill-amber {
478
- background: linear-gradient(to right, #fbbf24, #f97316);
479
- }
480
-
481
- .slider-fill-blue {
482
- background: linear-gradient(to right, #60a5fa, #6366f1);
483
- }
484
-
485
- .slider-fill-temp {
486
- background: linear-gradient(to right, #22d3ee, #2dd4bf, #fb7185);
487
- }
488
-
489
- .slider-thumb {
490
- position: absolute;
491
- height: 2rem;
492
- width: 4px;
493
- background: #fff;
494
- border-radius: 9999px;
495
- box-shadow: 0 2px 8px rgba(0,0,0,0.15);
496
- border: 1px solid rgba(0,0,0,0.05);
497
- z-index: 2;
498
- pointer-events: none;
499
- transform: translateX(-2px);
500
- transition: left 0.1s;
501
- }
502
-
503
- .vibe-section {
504
- display: flex;
505
- flex-direction: column;
506
- gap: 1rem;
507
- }
508
-
509
- .vibe-buttons {
510
- display: grid;
511
- grid-template-columns: repeat(3, 1fr);
512
- gap: 0.5rem;
513
- }
514
-
515
- .vibe-btn {
516
- position: relative;
517
- padding: 0.75rem;
518
- border-radius: 0.75rem;
519
- border: 1px solid #e2e8f0;
520
- background: #fff;
521
- cursor: pointer;
522
- overflow: hidden;
523
- box-shadow: 0 1px 3px rgba(0,0,0,0.05);
524
- transition: all 0.2s;
525
- }
526
-
527
- :global(.theme-dark) .vibe-btn {
528
- border-color: #334155;
529
- background: #0f172a;
530
- }
531
-
532
- .vibe-btn:hover {
533
- background: #f8fafc;
534
- }
535
-
536
- .vibe-bg {
537
- position: absolute;
538
- inset: 0;
539
- opacity: 0;
540
- transition: opacity 0.2s;
541
- }
542
-
543
- .vibe-bg-green {
544
- background: rgba(16,185,129,0.1);
545
- }
546
-
547
- .vibe-bg-amber {
548
- background: rgba(245,158,11,0.1);
549
- }
550
-
551
- .vibe-bg-rose {
552
- background: rgba(244,63,94,0.1);
553
- }
554
-
555
- .vibe-content {
556
- position: relative;
557
- z-index: 1;
558
- display: flex;
559
- flex-direction: column;
560
- align-items: center;
561
- gap: 0.5rem;
562
- }
563
-
564
- .vibe-icon {
565
- width: 1.5rem;
566
- height: 1.5rem;
567
- color: #94a3b8;
568
- transition: color 0.2s;
569
- }
570
-
571
- .vibe-label {
572
- font-size: 0.75rem;
573
- font-weight: 700;
574
- color: #64748b;
575
- transition: color 0.2s;
576
- }
577
-
578
- .vibe-bar {
579
- position: absolute;
580
- bottom: 0;
581
- left: 0;
582
- width: 100%;
583
- height: 4px;
584
- transform: scaleX(0);
585
- transition: transform 0.2s;
586
- }
587
-
588
- .vibe-bar-green {
589
- background: #10b981;
590
- }
591
-
592
- .vibe-bar-amber {
593
- background: #f59e0b;
594
- }
595
-
596
- .vibe-bar-rose {
597
- background: #f43f5e;
598
- }
599
-
600
- .vibe-btn.active .vibe-bg {
601
- opacity: 1;
602
- }
603
-
604
- .vibe-btn.active .active-bar {
605
- transform: scaleX(1);
606
- }
607
270
 
608
- .vibe-btn[data-mult="1"].active .icon-col {
609
- color: #10b981;
610
- }
611
-
612
- .vibe-btn[data-mult="1.5"].active .icon-col {
613
- color: #f59e0b;
614
- }
615
-
616
- .vibe-btn[data-mult="2.5"].active .icon-col {
617
- color: #f43f5e;
618
- }
619
-
620
- .temp-section {
621
- display: flex;
622
- flex-direction: column;
623
- gap: 1rem;
624
- padding-top: 1rem;
625
- border-top: 1px solid #e2e8f0;
626
- }
627
-
628
- :global(.theme-dark) .temp-section {
629
- border-color: #334155;
630
- }
631
-
632
- .temp-lbl {
633
- display: flex;
634
- align-items: center;
635
- gap: 0.5rem;
636
- }
637
-
638
- .temp-icon {
639
- color: #94a3b8;
640
- width: 1.25rem;
641
- height: 1.25rem;
642
- }
643
-
644
- .party-results {
645
- background: #f8fafc;
646
- display: flex;
647
- flex-direction: column;
648
- position: relative;
649
- }
650
-
651
- :global(.theme-dark) .party-results {
652
- background: rgba(0,0,0,0.2);
653
- }
654
-
655
- .stats-header {
656
- display: grid;
657
- grid-template-columns: 1fr 1fr;
658
- border-bottom: 1px solid #e2e8f0;
659
- background: rgba(255,255,255,0.4);
660
- backdrop-filter: blur(4px);
661
- }
662
-
663
- :global(.theme-dark) .stats-header {
664
- border-color: #1e293b;
665
- background: rgba(255,255,255,0.03);
666
- }
667
-
668
- .stat-block {
669
- padding: 2rem;
670
- position: relative;
671
- overflow: hidden;
672
- }
673
-
674
- .stat-block-left {
675
- border-right: 1px solid #e2e8f0;
676
- }
677
-
678
- :global(.theme-dark) .stat-block-left {
679
- border-color: #1e293b;
680
- }
681
-
682
- .stat-deco-icon {
683
- position: absolute;
684
- top: 0;
685
- right: 0;
686
- padding: 1rem;
687
- opacity: 0.05;
688
- }
689
-
690
- .stat-block:hover .stat-deco-icon {
691
- opacity: 0.1;
692
- transition: opacity 0.2s;
693
- }
694
-
695
- .stat-deco-svg {
696
- width: 6rem;
697
- height: 6rem;
698
- color: #0f172a;
699
- transform: rotate(12deg);
700
- }
701
-
702
- .stat-block-right .stat-deco-svg {
703
- transform: rotate(-12deg);
704
- }
705
-
706
- .stat-label {
707
- font-size: 0.75rem;
708
- font-weight: 700;
709
- text-transform: uppercase;
710
- letter-spacing: 0.1em;
711
- color: #94a3b8;
712
- display: block;
713
- margin-bottom: 0.5rem;
714
- }
715
-
716
- .stat-value-row {
717
- display: flex;
718
- align-items: baseline;
719
- gap: 0.5rem;
720
- }
721
-
722
- .stat-number {
723
- font-size: 3rem;
724
- font-weight: 300;
725
- color: #0f172a;
726
- letter-spacing: -0.05em;
727
- }
728
-
729
- :global(.theme-dark) .stat-number {
730
- color: #f1f5f9;
731
- }
732
-
733
- .stat-unit {
734
- font-size: 1.125rem;
735
- color: #64748b;
736
- font-weight: 700;
737
- }
738
-
739
- .stat-sub {
740
- margin: 1rem 0 0;
741
- font-size: 0.875rem;
742
- font-weight: 500;
743
- }
744
-
745
- .stat-sub-amber {
746
- color: #d97706;
747
- }
748
-
749
- .stat-sub-cyan {
750
- color: #0891b2;
751
- }
752
-
753
- .visual-stage-wrap {
754
- flex: 1;
755
- min-height: 400px;
756
- padding: 2rem;
757
- position: relative;
758
- overflow: hidden;
759
- display: flex;
760
- flex-direction: column;
761
- justify-content: flex-end;
762
- background: linear-gradient(to top, rgba(203,213,225,0.5) 0%, rgba(248,250,252,0) 100%);
763
- }
764
-
765
- :global(.theme-dark) .visual-stage-wrap {
766
- background: linear-gradient(to top, rgba(15,23,42,0.5) 0%, transparent 100%);
767
- }
768
-
769
- .visual-stage-header {
770
- position: absolute;
771
- top: 1.5rem;
772
- left: 2rem;
773
- right: 2rem;
774
- display: flex;
775
- justify-content: space-between;
776
- }
777
-
778
- .visual-title {
779
- font-size: 0.75rem;
780
- color: #94a3b8;
781
- font-weight: 700;
782
- text-transform: uppercase;
783
- letter-spacing: 0.1em;
784
- }
785
-
786
- .ice-hint {
787
- font-size: 0.75rem;
788
- color: #64748b;
789
- }
790
-
791
- .visual-stage {
792
- display: flex;
793
- justify-content: center;
794
- align-items: flex-end;
795
- gap: 3rem;
796
- width: 100%;
797
- }
798
-
799
- .stage-baseline {
800
- position: absolute;
801
- bottom: 0;
802
- left: 0;
803
- right: 0;
804
- height: 1px;
805
- background: #cbd5e1;
806
- }
807
-
808
- :global(.theme-dark) .stage-baseline {
809
- background: #334155;
810
- }
811
-
812
- @keyframes drop-in {
813
- 0% {
814
- transform: translateY(-50px);
815
- opacity: 0;
816
- }
817
-
818
- 100% {
819
- transform: translateY(0);
820
- opacity: 1;
821
- }
822
- }
823
-
824
- .animate-drop {
825
- animation: drop-in 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
826
- }
827
-
828
- :global(.visual-container) {
829
- display: flex;
830
- align-items: flex-end;
831
- justify-content: center;
832
- width: 100%;
833
- height: 100%;
834
- gap: 2rem;
835
- }
836
-
837
- @media (min-width: 1024px) {
838
- :global(.visual-container) {
839
- gap: 4rem;
840
- }
841
- }
842
-
843
- :global(.keg-stack) {
844
- display: flex;
845
- flex-direction: column-reverse;
846
- align-items: center;
847
- justify-content: flex-start;
848
- height: 100%;
849
- margin-bottom: -2rem;
850
- min-width: 80px;
851
- }
852
-
853
- :global(.keg-item) {
854
- position: relative;
855
- transition: transform 0.3s;
856
- transform-origin: bottom;
857
- cursor: default;
858
- }
859
-
860
- :global(.keg-item:hover) {
861
- transform: scale(1.05);
862
- }
863
-
864
- :global(.keg-plus) {
865
- text-align: center;
866
- font-weight: 900;
867
- font-size: 1.25rem;
868
- color: #b45309;
869
- margin-bottom: 1rem;
870
- background: rgba(251,191,36,0.8);
871
- backdrop-filter: blur(4px);
872
- border-radius: 9999px;
873
- width: 3.5rem;
874
- height: 3.5rem;
875
- display: flex;
876
- align-items: center;
877
- justify-content: center;
878
- border: 2px solid #fde68a;
879
- box-shadow: 0 4px 20px rgba(0,0,0,0.1);
880
- z-index: 50;
881
- animation: bounce 1s infinite;
882
- }
883
-
884
- @keyframes bounce {
885
- 0%, 100% {
886
- transform: translateY(0);
887
- }
888
-
889
- 50% {
890
- transform: translateY(-4px);
891
- }
892
- }
893
-
894
- :global(.ice-pile) {
895
- display: flex;
896
- flex-wrap: wrap;
897
- align-content: flex-end;
898
- justify-content: center;
899
- width: 15rem;
900
- margin-left: -1.25rem;
901
- padding: 1rem;
902
- position: relative;
903
- }
904
-
905
- :global(.ice-bag) {
906
- transition: transform 0.3s;
907
- cursor: pointer;
908
- }
909
-
910
- :global(.ice-bag:hover) {
911
- transform: scale(1.1);
912
- z-index: 50;
913
- }
914
-
915
- :global(.bags-plus) {
916
- position: absolute;
917
- top: -3rem;
918
- left: 50%;
919
- transform: translateX(-50%);
920
- z-index: 100;
921
- font-weight: 900;
922
- font-size: 1.25rem;
923
- color: #0e7490;
924
- background: rgba(236,254,255,0.9);
925
- padding: 0.5rem 1rem;
926
- border-radius: 9999px;
927
- border: 2px solid #a5f3fc;
928
- box-shadow: 0 4px 20px rgba(6,182,212,0.3);
929
- animation: bounce 1s infinite;
930
- }
931
- </style>