@ericchen1990/pano-view 3.8.0 → 3.9.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.
package/dist/styles.css CHANGED
@@ -8,7 +8,14 @@
8
8
  .pano-video-controls,
9
9
  .pano-video-chrome-button,
10
10
  .pano-video-chrome-menu,
11
- .pano-video-volume-popover {
11
+ .pano-video-volume-popover,
12
+ .pano-scene-menu,
13
+ .pano-scene-menu-body,
14
+ .pano-scene-menu-list,
15
+ .pano-scene-menu-item,
16
+ .pano-scene-menu-thumb,
17
+ .pano-scene-menu-label,
18
+ .pano-scene-menu-control {
12
19
  box-sizing: border-box;
13
20
  }
14
21
 
@@ -577,3 +584,269 @@
577
584
  .pano-map-dialog-body {
578
585
  padding: 0 16px 16px;
579
586
  }
587
+
588
+ .pano-scene-menu {
589
+ background: transparent;
590
+ display: block;
591
+ pointer-events: none;
592
+ position: absolute;
593
+ transition: transform 240ms ease;
594
+ z-index: 2;
595
+ }
596
+
597
+ .pano-scene-menu[data-placement="bottom"][data-expanded="false"] {
598
+ transform: translateY(
599
+ calc(100% + var(--pano-scene-menu-dock-inset, 12px))
600
+ );
601
+ }
602
+
603
+ .pano-scene-menu[data-placement="top"][data-expanded="false"] {
604
+ transform: translateY(
605
+ calc(-100% - var(--pano-scene-menu-dock-inset, 12px))
606
+ );
607
+ }
608
+
609
+ .pano-scene-menu[data-placement="left"][data-expanded="false"] {
610
+ transform: translateX(
611
+ calc(-100% - var(--pano-scene-menu-dock-inset, 12px))
612
+ );
613
+ }
614
+
615
+ .pano-scene-menu[data-placement="right"][data-expanded="false"] {
616
+ transform: translateX(
617
+ calc(100% + var(--pano-scene-menu-dock-inset, 12px))
618
+ );
619
+ }
620
+
621
+ @media (prefers-reduced-motion: reduce) {
622
+ .pano-scene-menu {
623
+ transition: none;
624
+ }
625
+ }
626
+
627
+ .pano-scene-menu-body {
628
+ align-items: center;
629
+ background: var(--pano-scene-menu-background, rgba(16, 16, 16, 0.72));
630
+ border-radius: var(--pano-scene-menu-radius, 8px);
631
+ display: flex;
632
+ gap: var(--pano-scene-menu-gap, 8px);
633
+ min-height: 0;
634
+ min-width: 0;
635
+ padding: var(--pano-scene-menu-padding, 8px 10px);
636
+ pointer-events: auto;
637
+ width: 100%;
638
+ }
639
+
640
+ .pano-scene-menu[data-orientation="horizontal"] .pano-scene-menu-body {
641
+ flex-direction: row;
642
+ height: 100%;
643
+ }
644
+
645
+ .pano-scene-menu[data-orientation="vertical"] .pano-scene-menu-body {
646
+ flex-direction: column;
647
+ height: 100%;
648
+ }
649
+
650
+ .pano-scene-menu-list {
651
+ display: flex;
652
+ flex: 1 1 auto;
653
+ gap: var(--pano-scene-menu-gap, 8px);
654
+ min-height: 0;
655
+ min-width: 0;
656
+ scrollbar-width: thin;
657
+ -webkit-overflow-scrolling: touch;
658
+ }
659
+
660
+ .pano-scene-menu[data-align="center"] .pano-scene-menu-list {
661
+ justify-content: safe center;
662
+ }
663
+
664
+ .pano-scene-menu[data-align="end"] .pano-scene-menu-list {
665
+ justify-content: safe flex-end;
666
+ }
667
+
668
+ .pano-scene-menu[data-align="start"] .pano-scene-menu-list {
669
+ justify-content: flex-start;
670
+ }
671
+
672
+ .pano-scene-menu-track {
673
+ display: flex;
674
+ flex: 0 0 auto;
675
+ gap: var(--pano-scene-menu-gap, 8px);
676
+ min-height: 0;
677
+ min-width: 0;
678
+ }
679
+
680
+ .pano-scene-menu[data-orientation="horizontal"] .pano-scene-menu-track {
681
+ flex-direction: row;
682
+ }
683
+
684
+ .pano-scene-menu[data-orientation="vertical"] .pano-scene-menu-track {
685
+ flex-direction: column;
686
+ }
687
+
688
+ .pano-scene-menu[data-orientation="horizontal"] .pano-scene-menu-list {
689
+ flex-direction: row;
690
+ overflow-x: auto;
691
+ overflow-y: hidden;
692
+ overscroll-behavior-x: contain;
693
+ touch-action: pan-x;
694
+ }
695
+
696
+ .pano-scene-menu[data-orientation="vertical"] .pano-scene-menu-list {
697
+ flex-direction: column;
698
+ overflow-x: hidden;
699
+ overflow-y: auto;
700
+ overscroll-behavior-y: contain;
701
+ touch-action: pan-y;
702
+ }
703
+
704
+ .pano-scene-menu[data-drag-motion="custom"] .pano-scene-menu-list {
705
+ overflow: hidden;
706
+ overscroll-behavior: none;
707
+ touch-action: none;
708
+ }
709
+
710
+ .pano-scene-menu-item {
711
+ appearance: none;
712
+ background: transparent;
713
+ border: 0;
714
+ color: inherit;
715
+ cursor: pointer;
716
+ display: block;
717
+ flex: 0 0 auto;
718
+ font: inherit;
719
+ height: var(--pano-scene-menu-item-height, 80px);
720
+ padding: 0;
721
+ width: var(--pano-scene-menu-item-width, 128px);
722
+ }
723
+
724
+ .pano-scene-menu-item:focus-visible,
725
+ .pano-scene-menu-control:focus-visible {
726
+ outline: 2px solid var(--pano-scene-menu-selection-color, #ffffff);
727
+ outline-offset: 2px;
728
+ }
729
+
730
+ .pano-scene-menu-thumb {
731
+ border-radius: var(--pano-scene-menu-radius, 8px);
732
+ display: block;
733
+ height: 100%;
734
+ overflow: hidden;
735
+ position: relative;
736
+ width: 100%;
737
+ }
738
+
739
+ .pano-scene-menu-thumb img {
740
+ display: block;
741
+ height: 100%;
742
+ object-fit: cover;
743
+ pointer-events: none;
744
+ user-select: none;
745
+ width: 100%;
746
+ }
747
+
748
+ .pano-scene-menu-item[data-active="true"] .pano-scene-menu-thumb::after {
749
+ border: var(--pano-scene-menu-selection-width, 2px) solid
750
+ var(--pano-scene-menu-selection-color, #ffffff);
751
+ border-radius: inherit;
752
+ box-sizing: border-box;
753
+ content: "";
754
+ inset: 0;
755
+ pointer-events: none;
756
+ position: absolute;
757
+ }
758
+
759
+ .pano-scene-menu-label {
760
+ background: var(--pano-scene-menu-label-background, rgba(0, 0, 0, 0.55));
761
+ bottom: 0;
762
+ color: var(--pano-scene-menu-label-color, #ffffff);
763
+ font-size: var(--pano-scene-menu-font-size, 12px);
764
+ left: 0;
765
+ line-height: 1.3;
766
+ overflow: hidden;
767
+ padding: 0.25rem 0.4rem;
768
+ position: absolute;
769
+ right: 0;
770
+ text-align: var(--pano-scene-menu-label-align, start);
771
+ text-overflow: ellipsis;
772
+ white-space: nowrap;
773
+ }
774
+
775
+ .pano-scene-menu-control {
776
+ align-items: center;
777
+ appearance: none;
778
+ background: var(--pano-scene-menu-control-background, rgba(255, 255, 255, 0.12));
779
+ border: 0;
780
+ border-radius: var(--pano-scene-menu-radius, 8px);
781
+ color: var(--pano-scene-menu-control-color, #ffffff);
782
+ cursor: pointer;
783
+ display: inline-flex;
784
+ flex: 0 0 auto;
785
+ font: inherit;
786
+ height: 2rem;
787
+ justify-content: center;
788
+ min-height: 2rem;
789
+ min-width: 2rem;
790
+ padding: 0;
791
+ width: 2rem;
792
+ }
793
+
794
+ .pano-scene-menu-control:disabled {
795
+ cursor: default;
796
+ opacity: 0.35;
797
+ }
798
+
799
+ .pano-scene-menu-toggle {
800
+ background: var(--pano-scene-menu-background, rgba(16, 16, 16, 0.72));
801
+ pointer-events: auto;
802
+ position: absolute;
803
+ z-index: 1;
804
+ }
805
+
806
+ .pano-scene-menu[data-placement="bottom"] .pano-scene-menu-toggle,
807
+ .pano-scene-menu[data-placement="top"] .pano-scene-menu-toggle {
808
+ height: 1.5rem;
809
+ min-height: 1.5rem;
810
+ min-width: 4.5rem;
811
+ width: 4.5rem;
812
+ }
813
+
814
+ .pano-scene-menu[data-placement="left"] .pano-scene-menu-toggle,
815
+ .pano-scene-menu[data-placement="right"] .pano-scene-menu-toggle {
816
+ height: 4.5rem;
817
+ min-height: 4.5rem;
818
+ min-width: 1.5rem;
819
+ width: 1.5rem;
820
+ }
821
+
822
+ .pano-scene-menu[data-placement="bottom"] .pano-scene-menu-toggle {
823
+ border-radius: var(--pano-scene-menu-radius, 8px)
824
+ var(--pano-scene-menu-radius, 8px) 0 0;
825
+ bottom: 100%;
826
+ left: 50%;
827
+ transform: translateX(-50%);
828
+ }
829
+
830
+ .pano-scene-menu[data-placement="top"] .pano-scene-menu-toggle {
831
+ border-radius: 0 0 var(--pano-scene-menu-radius, 8px)
832
+ var(--pano-scene-menu-radius, 8px);
833
+ left: 50%;
834
+ top: 100%;
835
+ transform: translateX(-50%);
836
+ }
837
+
838
+ .pano-scene-menu[data-placement="left"] .pano-scene-menu-toggle {
839
+ border-radius: 0 var(--pano-scene-menu-radius, 8px)
840
+ var(--pano-scene-menu-radius, 8px) 0;
841
+ left: 100%;
842
+ top: 50%;
843
+ transform: translateY(-50%);
844
+ }
845
+
846
+ .pano-scene-menu[data-placement="right"] .pano-scene-menu-toggle {
847
+ border-radius: var(--pano-scene-menu-radius, 8px) 0 0
848
+ var(--pano-scene-menu-radius, 8px);
849
+ right: 100%;
850
+ top: 50%;
851
+ transform: translateY(-50%);
852
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ericchen1990/pano-view",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "description": "React components for panoramic viewing experiences.",
5
5
  "author": "Eric Chen",
6
6
  "license": "MIT",