@vuu-ui/vuu-layout 0.8.5-debug → 0.8.6-debug

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/index.css CHANGED
@@ -520,94 +520,6 @@ path.drop-target.centre {
520
520
  background: repeating-linear-gradient(to right, var(--hw-fluid-grid-col-bg) 0, var(--hw-fluid-grid-col-bg) var(--column-width), white var(--column-width), white calc(var(--column-width) + var(--gutter-width)));
521
521
  }
522
522
 
523
- /* src/layout-view/View.css */
524
- .vuuView {
525
- border-color: var(--vuuView-borderColor, var(--salt-container-primary-borderColor));
526
- border-width: var(--vuuView-borderWidth, 1px);
527
- border-style: var(--vuuView-borderStyle, none);
528
- display: flex;
529
- flex-direction: column;
530
- margin: var(--vuuView-margin, 0px);
531
- min-height: 50px;
532
- min-width: 50px;
533
- outline: none;
534
- overflow: hidden;
535
- position: relative;
536
- }
537
- .vuuView.focus-visible:after {
538
- content: "";
539
- position: absolute;
540
- top: 0;
541
- left: 0;
542
- right: 0;
543
- bottom: 0;
544
- border: dotted cornflowerblue 2px;
545
- }
546
- .vuuView.dragging {
547
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
548
- }
549
- .vuuView-main {
550
- display: flex;
551
- flex-direction: var(--vuuView-flexDirection, column);
552
- flex-wrap: var(--vuuView-flex-wrap, nowrap);
553
- flex: 1;
554
- overflow: hidden;
555
- position: relative;
556
- }
557
- .vuuView-main > * {
558
- flex-basis: auto;
559
- flex-grow: var(--vuuView-flex-grow, 1);
560
- flex-shrink: var(--vuuView-flex-shrink, 1);
561
- }
562
- .vuuView-collapsed .vuuView-main {
563
- display: none;
564
- }
565
- .vuuView-collapsed + .Splitter {
566
- display: none;
567
- }
568
- .vuuView-collapsed .Toolbar-vertical {
569
- border-right: solid 1px var(--grey40);
570
- }
571
- .vuuView-collapsed .Toolbar-vertical .toolbar-title {
572
- display: none;
573
- }
574
-
575
- /* ../vuu-ui-controls/src/editable-label/EditableLabel.css */
576
- .vuuEditableLabel {
577
- --saltInput-minWidth: 14px;
578
- --saltInput-position: absolute;
579
- --editableLabel-padding: var(--saltEditableLabel-padding, 6px);
580
- --editableLabel-height: var(--saltEditableLabel-height, 26px);
581
- color: inherit;
582
- cursor: default;
583
- display: flex;
584
- flex-direction: column;
585
- font-size: var(--salt-text-fontSize);
586
- height: var(--editableLabel-height);
587
- justify-content: center;
588
- outline: none;
589
- padding: 0 var(--editableLabel-padding);
590
- position: relative;
591
- z-index: var(--salt-zIndex-default);
592
- }
593
- .vuuEditableLabel:before {
594
- content: attr(data-text);
595
- display: block;
596
- height: 0px;
597
- visibility: hidden;
598
- white-space: pre-wrap;
599
- }
600
- .vuuEditableLabel .saltInput {
601
- font-weight: var(--salt-text-fontWeight);
602
- left: var(--editableLabel-padding, 0);
603
- padding: 0;
604
- outline-style: none;
605
- right: var(--editableLabel-padding, 0);
606
- }
607
- .vuuEditableLabel-input {
608
- outline: none;
609
- }
610
-
611
523
  /* ../vuu-ui-controls/src/drag-drop/Draggable.css */
612
524
  .vuuDraggable {
613
525
  background: transparent;
@@ -619,7 +531,7 @@ path.drop-target.centre {
619
531
  }
620
532
  .vuuDraggable-spacer {
621
533
  display: var(--saltDraggable-display, inline-block);
622
- height: var(--saltDraggable-spacer-height, var(--tabs-tabstrip-height));
534
+ height: var(--saltDraggable-spacer-height, var(--tabstrip-height));
623
535
  transition: var(--saltDraggable-transitionProp, width) 0.3s ease;
624
536
  width: var(--saltDraggable-spacer-width, 0);
625
537
  }
@@ -655,53 +567,99 @@ path.drop-target.centre {
655
567
  order: 1;
656
568
  }
657
569
 
570
+ /* ../vuu-ui-controls/src/editable-label/EditableLabel.css */
571
+ .vuuEditableLabel {
572
+ --saltInput-background: transparent;
573
+ --saltInput-minWidth: 14px;
574
+ --saltInput-position: absolute;
575
+ --editableLabel-padding: var(--saltEditableLabel-padding, 6px);
576
+ --editableLabel-height: var(--saltEditableLabel-height, 26px);
577
+ color: inherit;
578
+ cursor: default;
579
+ display: flex;
580
+ flex-direction: column;
581
+ font-size: var(--salt-text-fontSize);
582
+ height: var(--editableLabel-height);
583
+ justify-content: center;
584
+ outline: none;
585
+ padding: 0 var(--editableLabel-padding);
586
+ position: relative;
587
+ z-index: var(--salt-zIndex-default);
588
+ }
589
+ .vuuEditableLabel:before {
590
+ content: attr(data-text);
591
+ display: block;
592
+ height: 0px;
593
+ visibility: hidden;
594
+ white-space: pre-wrap;
595
+ }
596
+ .vuuEditableLabel .saltInput {
597
+ font-weight: var(--salt-text-fontWeight);
598
+ left: var(--editableLabel-padding, 0);
599
+ padding: 0;
600
+ outline-style: none;
601
+ position: absolute;
602
+ right: var(--editableLabel-padding, 0);
603
+ top: var(--saltEditableLabel-top, 2px);
604
+ width: auto;
605
+ }
606
+ .vuuEditableLabel .saltInput-activationIndicator {
607
+ display: none;
608
+ }
609
+ .vuuEditableLabel-input {
610
+ background-color: transparent;
611
+ border: none;
612
+ box-sizing: content-box;
613
+ display: block;
614
+ flex: 1;
615
+ font: inherit;
616
+ height: 20px;
617
+ margin: 0;
618
+ min-width: 0;
619
+ outline: none;
620
+ padding: 0;
621
+ }
622
+
658
623
  /* ../vuu-ui-controls/src/tabstrip/Tabstrip.css */
659
624
  .vuuTabstrip {
660
625
  --vuuOverflowContainer-background: transparent;
661
- --tabs-tabstrip-height: var(--vuuTabstrip-height, 28px);
662
- --tabs-tabstrip-dragging-display: none;
663
- --tabs-tabstrip-display: inline-flex;
664
- --tabs-tabstrip-background: transparent;
665
- align-items: flex-start;
626
+ --tabstrip-dragging-display: none;
627
+ --tabstrip-display: inline-flex;
628
+ --tabstrip-background: transparent;
666
629
  align-self: var(--saltTabs-tabstrip-alignSelf, stretch);
667
- border-bottom: var(--vuuTabstrip-borderBottom, solid 1px var(--salt-container-primary-borderColor));
668
630
  font-size: var(--salt-text-fontSize);
669
- font-weight: var(--salt-text-fontWeight);
631
+ font-weight: var(--vuuTabstrip-fontWeight, var(--salt-text-fontWeight));
670
632
  position: relative;
671
633
  overflow: visible;
672
634
  display: flex;
673
635
  min-width: 28px;
674
- width: 100%;
636
+ width: var(--tabstrip-width);
675
637
  }
676
638
  .vuuTabstrip-horizontal {
677
- --vuuTabActivationIndicator-height: 1px;
678
- --vuuTabActivationIndicator-thumb-inset: -1px 0 0 0;
679
- --tab-activationIndicator-borderStyle: none none solid none;
680
- --tab-activationIndicator-inset: auto 0px 0px 0px;
681
- --tab-activationIndicator-transitionProperty: left;
682
- --tab-activationIndicator-thumb-height: 0px;
639
+ --tabstrip-height: var(--vuuTabstrip-height, 28px);
640
+ --tabstrip-width: var(--vuuTabstrip-width, 100%);
641
+ --tab-width: auto;
683
642
  --tab-thumb-height: 2px;
643
+ --tab-thumb-left: var(--tab-thumb-offset, 0);
644
+ --tab-thumb-top: auto;
645
+ --tab-thumb-width: var(--tab-thumb-size, 100%);
646
+ align-items: flex-start;
647
+ border-bottom: var(--vuuTabstrip-borderBottom, solid 1px var(--salt-container-primary-borderColor));
684
648
  }
685
649
  .vuuTabstrip-vertical {
686
- --vuuTabActivationIndicator-thumb-inset: 0 0 0 -1px;
687
- --tab-activationIndicator-transition: top 0.3s ease;
688
- --tab-activationIndicator-borderStyle: none solid none none;
689
- --tab-activationIndicator-inset: 0px 0px 0px auto;
690
- --tab-activationIndicator-transitionProperty: top;
691
- --tab-activationIndicator-width: 1px;
692
- --tab-activationIndicator-thumb-width: 2px;
650
+ --tabstrip-height: var(--vuuTabstrip-height, 100%);
651
+ --tabstrip-width: var(--vuuTabstrip-width, 100px);
652
+ --tab-width: 100%;
653
+ --tab-thumb-height: var(--tab-thumb-size, 100%);
654
+ --tab-thumb-left: 0;
655
+ --tab-thumb-top: var(--tab-thumb-offset, 0);
656
+ --tab-thumb-width: 2px;
693
657
  align-self: flex-start;
694
658
  display: inline-flex;
695
659
  }
696
- .vuuTabstrip-draggingTab {
697
- --vuuTabs-activationIndicator-transition: none;
698
- }
699
660
  .vuuTabstrip-draggingTab .vuuTab {
700
661
  pointer-events: none;
701
662
  }
702
- .vuuTabstrip-horizontal {
703
- height: var(--tabs-tabstrip-height);
704
- }
705
663
  .vuuTabstrip-addTabButton {
706
664
  --saltButton-height: 20px;
707
665
  --saltButton-width: 20px;
@@ -725,7 +683,7 @@ path.drop-target.centre {
725
683
  flex-shrink: 1;
726
684
  flex-wrap: wrap;
727
685
  justify-content: flex-start;
728
- line-height: var(--tabs-tabstrip-height);
686
+ line-height: var(--tabstrip-height);
729
687
  }
730
688
  .vuuTabstrip-vertical .vuuTabstrip-inner {
731
689
  flex-direction: column;
@@ -735,9 +693,9 @@ path.drop-target.centre {
735
693
  justify-content: center;
736
694
  }
737
695
  .vuuDraggable[class*=vuuTabstrip] {
738
- --tabs-tabstrip-display: flex;
739
- --tabs-tabstrip-height: 100%;
740
- --tabs-tabstrip-dragging-display: block;
696
+ --tabstrip-display: flex;
697
+ --tabstrip-height: 100%;
698
+ --tabstrip-dragging-display: block;
741
699
  --tabs-tab-background: var(--salt-navigable-primary-background-hover);
742
700
  --tabs-tab-before-content: "";
743
701
  --tabs-tab-before-background: var(--salt-navigable-indicator-hover);
@@ -750,14 +708,8 @@ path.drop-target.centre {
750
708
  }
751
709
  .vuuDraggable-tabstrip-horizontal {
752
710
  --tab-thumb-height: 2px;
753
- --tabs-tabstrip-height: 28px;
754
- --tab-activationIndicator-thumb-height: 2px;
755
- --tab-activationIndicator-inset: auto 0px 0px 0px;
756
- line-height: var(--tabs-tabstrip-height);
757
- }
758
- .vuuDraggable-tabstrip-vertical {
759
- --tab-activationIndicator-inset: 0px 0px 0px auto;
760
- --tab-activationIndicator-thumb-width: 2px;
711
+ --tabstrip-height: 28px;
712
+ line-height: var(--tabstrip-height);
761
713
  }
762
714
  .vuuDraggable[class*=tabstrip] .vuuTab[aria-selected=true]:before {
763
715
  --tabs-tab-before-background: var(--salt-navigable-indicator-active);
@@ -780,43 +732,42 @@ path.drop-target.centre {
780
732
  /* ../vuu-ui-controls/src/tabstrip/Tab.css */
781
733
  .vuuTab {
782
734
  --saltEditableLabel-padding: 0;
783
- --saltEditableLabel-height: var(--tabs-tabstrip-height);
735
+ --saltEditableLabel-height: var(--tabstrip-height);
784
736
  --saltInputLegacy-minWidth: 4em;
785
- --tab-background: var(--salt-navigable-primary-background);
737
+ --saltEditableLabel-top: 3px;
738
+ --tab-background: var(--vuuTab-background, var(--salt-navigable-primary-background));
786
739
  --tab-cursor: pointer;
787
740
  --tab-position: relative;
788
741
  }
789
742
  .vuuTab {
790
743
  align-items: center;
791
744
  align-self: stretch;
792
- background: var(--vuuTab-background, var(--tab-background));
745
+ background: var(--tab-background);
793
746
  border: none;
794
- border-radius: 0;
747
+ border-radius: var(--vuuTab-borderRadius, 0);
795
748
  color: var(--salt-text-primary-foreground);
796
749
  cursor: var(--vuuTab-cursor, var(--tab-cursor));
797
- display: var(--tabs-tabstrip-display);
750
+ display: var(--tabstrip-display);
798
751
  gap: 8px;
799
- height: var(--vuuTab-height, var(--tabs-tabstrip-height));
752
+ height: var(--vuuTab-height, var(--tabstrip-height));
800
753
  letter-spacing: var(--vuuTab-letterSpacing, var(--tab-letterSpacing, 0));
801
754
  min-width: var(--vuuTab-minWidth, 40px);
802
755
  outline: none;
803
- padding: 0 24px;
756
+ padding: var(--vuuTab-padding, 0 24px);
804
757
  position: var(--vuuTab-position, var(--tab-position));
805
758
  user-select: none;
759
+ width: var(--tab-width);
806
760
  }
807
- .vuuTab.saltFocusVisible:after {
808
- inset: 2px 2px 4px 2px;
809
- }
810
- .vuuTab:not(.vuuTab-vertical) {
761
+ .vuuTab {
811
762
  margin: 0 var(--tab-spacing) 0 0;
812
763
  }
813
764
  .vuuTab-selected {
765
+ background: var(--vuuTab-background-selected, var(--tab-background));
814
766
  color: var(--salt-text-primary-foreground);
815
767
  font-weight: var(--salt-navigable-fontWeight-active);
816
768
  }
817
769
  .vuuTab-main {
818
770
  align-items: center;
819
- background: inherit;
820
771
  border: none;
821
772
  color: inherit;
822
773
  cursor: inherit;
@@ -857,9 +808,6 @@ path.drop-target.centre {
857
808
  white-space: nowrap;
858
809
  z-index: var(--salt-zIndex-default);
859
810
  }
860
- .vuuTab-vertical .vuuTab-text {
861
- text-align: var(--salt-text-textAlign);
862
- }
863
811
  .vuuTab .vuuTab-text:before {
864
812
  height: 0;
865
813
  content: attr(data-text);
@@ -879,21 +827,16 @@ path.drop-target.centre {
879
827
  outline-width: var(--salt-focused-outlineWidth);
880
828
  outline-offset: -2px;
881
829
  }
882
- .vuuTab-vertical.vuuTab-editing:after {
883
- right: 2px;
884
- bottom: 0;
885
- }
886
- .vuuTab-vertical .saltFocusVisible:not(.vuuTab-selected):before {
887
- left: auto;
888
- height: auto;
889
- top: 0;
890
- width: 2px;
891
- }
892
- .vuuTab.saltFocusVisible {
830
+ .vuuTab.vuuFocusVisible {
893
831
  background: var(--vuuTab-hover-background, var(--salt-navigable-primary-background-hover));
832
+ outline-color: var(--vuuTab-focusVisible-color, var(--salt-focused-outlineColor));
833
+ outline-style: dashed;
834
+ outline-width: 1px;
835
+ outline-offset: -1px;
894
836
  }
895
837
  .vuuTab:before {
896
838
  content: var(--tab-before-content, none);
839
+ content: "";
897
840
  background: var(--tab-before-background);
898
841
  height: var(--tab-before-height);
899
842
  inset: var(--tab-before-inset);
@@ -908,22 +851,14 @@ path.drop-target.centre {
908
851
  --tab-before-inset: var(--tab-activationIndicator-inset);
909
852
  --tab-before-width: var(--tab-activationIndicator-thumb-width);
910
853
  }
911
- .vuuDraggable .vuuTab:before,
912
- .vuuTab:not(.vuuTab-selected).saltFocusVisible:before,
913
- .vuuTab:hover:not(.vuuTab-selected):before {
914
- --tab-before-content: "";
915
- --tab-before-background: var(--salt-navigable-indicator-hover);
916
- --tab-before-height: var(--tab-thumb-height);
917
- --tab-before-inset: var(--tab-activationIndicator-inset);
918
- --tab-before-width: var(--tab-activationIndicator-thumb-width);
919
- }
920
854
  .vuuTab-selected:before {
921
855
  --tab-before-content: "";
922
856
  background: var(--salt-navigable-indicator-active);
923
857
  height: var(--tab-thumb-height);
924
858
  position: absolute;
925
- left: var(--tab-thumb-offset,0);
859
+ left: var(--tab-thumb-left);
926
860
  bottom: 0px;
861
+ top: var(--tab-thumb-top, auto);
927
862
  transition: var(--tab-thumb-transition, none);
928
863
  width: var(--tab-thumb-width, 100%);
929
864
  }
@@ -931,9 +866,247 @@ path.drop-target.centre {
931
866
  background: var(--vuuTab-hover-background, var(--salt-navigable-primary-background-hover));
932
867
  }
933
868
 
869
+ /* ../vuu-ui-controls/src/tree/Tree.css */
870
+ .vuuTree {
871
+ --tree-node-collapse: var(--vuuTree-toggle-collapse, var(--svg-tree-node-collapse));
872
+ --tree-node-expand: var(--vuuTree-toggle-expand, var(--svg-tree-node-expand));
873
+ --tree-toggle-width: 12px;
874
+ --tree-icon-color: var(--vuuTree-icon-color, #4c505b);
875
+ --tree-node-expanded-transform: var(--vuuTree-node-expanded-transform, none);
876
+ --tree-node-indent: 0px;
877
+ --list-hilited-bg: var(--hw-list-hilited-bg, rgba(0, 0, 0, 0.1));
878
+ --list-item-height: var(--hw-list-item-height, 30px);
879
+ --list-item-padding: var(--hw-list-item-padding, 0 6px);
880
+ --list-item-header-bg: var(--hw-list-item-header-bg, black);
881
+ --list-item-header-color: var(--hw-list-item-header-color, white);
882
+ --list-item-header-font-weight: bold;
883
+ --list-item-header-twisty-color: black;
884
+ --list-item-header-twisty-content: "";
885
+ --list-item-header-twisty-top: 50%;
886
+ --list-item-header-twisty-left: -18px;
887
+ --list-item-header-twisty-right: auto;
888
+ --list-item-selected-bg: var(--hw-list-selected-bg, #1ea7fd);
889
+ --list-item-selected-color: white;
890
+ --list-item-text-color: var(--hw-gray-800);
891
+ --focus-visible-border-color: var(--hw-focus-visible-border-color, rgb(141, 154, 179));
892
+ list-style: none;
893
+ margin: 0;
894
+ padding: 0 1px;
895
+ font-size: var(--vuuTree-font-size, 14px);
896
+ max-height: inherit;
897
+ outline: none;
898
+ overflow-y: auto;
899
+ position: relative;
900
+ user-select: none;
901
+ }
902
+ .vuuTree-viewport {
903
+ --list-item-height: 30px;
904
+ box-sizing: border-box;
905
+ max-height: inherit;
906
+ overflow: auto;
907
+ }
908
+ .vuuTree-scrollingContentContainer {
909
+ box-sizing: inherit;
910
+ position: relative;
911
+ }
912
+ .vuuTree-scrollingContentContainer .vuuTreeNode {
913
+ line-height: 30px;
914
+ position: absolute;
915
+ top: 0;
916
+ left: 0;
917
+ right: 0;
918
+ will-change: transform;
919
+ }
920
+ .vuuTreeNode {
921
+ list-style: none;
922
+ }
923
+ .vuuTreeNode:not([aria-expanded]),
924
+ .vuuTreeNode[aria-expanded] > .vuuTreeNode-label {
925
+ --checkbox-border-color: black;
926
+ --checkbox-border-width: 1px;
927
+ --checkbox-tick: black;
928
+ --list-item-padding-left: 6px;
929
+ --svg-toggle: var(--tree-node-collapse);
930
+ align-items: center;
931
+ color: var(--list-item-text-color);
932
+ display: flex;
933
+ flex-wrap: nowrap;
934
+ height: var(--list-item-height);
935
+ line-height: var(--list-item-height);
936
+ padding: var(--list-item-padding);
937
+ padding-left: var(--padding-left);
938
+ position: relative;
939
+ cursor: default;
940
+ margin: 0;
941
+ white-space: nowrap;
942
+ }
943
+ .vuuTreeNode:not([aria-expanded]) {
944
+ --padding-left: calc( var(--list-item-padding-left) + var(--tree-toggle-width) + var(--tree-node-indent) );
945
+ }
946
+ .vuuTreeNode[aria-expanded] > .vuuTreeNode-label {
947
+ --padding-left: calc( var(--list-item-padding-left) + var(--tree-toggle-width) + var(--tree-node-indent) );
948
+ }
949
+ .vuuTreeNode-icon {
950
+ background-color: var(--tree-icon-color);
951
+ display: inline-block;
952
+ height: 18px;
953
+ margin-right: 6px;
954
+ -webkit-mask: var(--vuu-icon-svg) center center/12px 12px no-repeat;
955
+ mask: var(--vuu-icon-svg) center center/12px 12px no-repeat;
956
+ flex: 0 0 18px;
957
+ }
958
+ .vuuTreeNode[aria-expanded] {
959
+ flex-direction: column;
960
+ }
961
+ .vuuTreeNode[aria-expanded] {
962
+ flex-direction: column;
963
+ height: auto;
964
+ }
965
+ .vuuTreeNode > *[role=group] {
966
+ padding-left: 0px;
967
+ }
968
+ .vuuTreeNode {
969
+ padding-left: calc(var(--padding-left) + var(--tree-node-indent));
970
+ }
971
+ .vuuTreeNode[aria-level="2"] {
972
+ --tree-node-indent: 12px;
973
+ }
974
+ .vuuTreeNode[aria-level="3"] {
975
+ --tree-node-indent: 24px;
976
+ }
977
+ .vuuTreeNode[aria-level="4"] {
978
+ --tree-node-indent: 36px;
979
+ }
980
+ .vuuTreeNode:not(.focusVisible):not(.hwListItemHeader):not([aria-expanded])[data-highlighted],
981
+ .vuuTreeNode:not(.focusVisible):not(.hwListItemHeader)[aria-expanded][data-highlighted] > div:first-child {
982
+ background-color: var(--list-hilited-bg);
983
+ }
984
+ .vuuTreeNode-toggle {
985
+ cursor: pointer;
986
+ }
987
+ .vuuTreeNode > .vuuTreeNode-toggle {
988
+ display: inline-block;
989
+ height: 100%;
990
+ left: 0;
991
+ position: absolute;
992
+ width: calc(var(--list-item-padding-left) + var(--tree-toggle-width));
993
+ }
994
+ .vuuTreeNode[aria-expanded] > .vuuTreeNode-label:after {
995
+ content: var(--list-item-header-twisty-content);
996
+ -webkit-mask: var(--svg-toggle) center center/8px 8px no-repeat;
997
+ mask: var(--svg-toggle) center center/8px 8px no-repeat;
998
+ background-color: var(--list-item-header-twisty-color);
999
+ height: 18px;
1000
+ margin-top: -9px;
1001
+ left: var(--tree-node-indent);
1002
+ position: absolute;
1003
+ top: var(--list-item-header-twisty-top);
1004
+ transition: transform 0.3s;
1005
+ width: 18px;
1006
+ }
1007
+ .vuuTreeNode[aria-selected=true] {
1008
+ --list-item-header-twisty-color: var(--list-item-selected-color);
1009
+ }
1010
+ .vuuTreeNode:not(.focusVisible):focus {
1011
+ background-color: rgba(0, 0, 0, 0.1);
1012
+ }
1013
+ .vuuTreeNode:not([aria-expanded]).focusVisible:before,
1014
+ .vuuTreeNode[aria-expanded].focusVisible > div:first-child:before {
1015
+ content: "";
1016
+ position: absolute;
1017
+ top: 0px;
1018
+ left: var(--tree-focus-offset, 0px);
1019
+ right: 0;
1020
+ bottom: 0px;
1021
+ border: dotted var(--focus-visible-border-color) 2px;
1022
+ background-color: var(--list-hilited-bg);
1023
+ }
1024
+ .vuuTreeNode[aria-expanded=false] > *:first-child:after {
1025
+ --svg-toggle: var(--tree-node-expand);
1026
+ }
1027
+ .vuuTreeNode[aria-expanded=true] > *:first-child:after {
1028
+ transform: var(--tree-node-expanded-transform);
1029
+ }
1030
+ .vuuTree:not(.checkbox-only) .vuuTreeNode:not([aria-expanded])[aria-selected=true],
1031
+ .vuuTree:not(.checkbox-only) .vuuTreeNode[aria-expanded][aria-selected=true] > div:first-child {
1032
+ --checkbox-border-color: var(--list-item-selected-color);
1033
+ --checkbox-tick: var(--list-item-selected-color);
1034
+ --focus-visible-border-color: var(--list-item-selected-color);
1035
+ background-color: var(--list-item-selected-bg);
1036
+ color: var(--list-item-selected-color);
1037
+ }
1038
+ .with-checkbox .vuuTreeNode {
1039
+ padding-left: 28px;
1040
+ }
1041
+ .with-checkbox .vuuTreeNode:before {
1042
+ border-style: solid;
1043
+ border-width: var(--checkbox-border-width);
1044
+ border-color: var(--checkbox-border-color);
1045
+ content: "";
1046
+ height: 12px;
1047
+ left: 3px;
1048
+ margin-top: -7px;
1049
+ position: absolute;
1050
+ top: 50%;
1051
+ width: 12px;
1052
+ }
1053
+
1054
+ /* src/layout-view/View.css */
1055
+ .vuuView {
1056
+ border-color: var(--vuuView-borderColor, var(--salt-container-primary-borderColor));
1057
+ border-width: var(--vuuView-borderWidth, 1px);
1058
+ border-style: var(--vuuView-borderStyle, none);
1059
+ display: flex;
1060
+ flex-direction: column;
1061
+ margin: var(--vuuView-margin, 0px);
1062
+ min-height: 50px;
1063
+ min-width: 50px;
1064
+ outline: none;
1065
+ overflow: hidden;
1066
+ position: relative;
1067
+ }
1068
+ .vuuView.focus-visible:after {
1069
+ content: "";
1070
+ position: absolute;
1071
+ top: 0;
1072
+ left: 0;
1073
+ right: 0;
1074
+ bottom: 0;
1075
+ border: dotted cornflowerblue 2px;
1076
+ }
1077
+ .vuuView.dragging {
1078
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
1079
+ }
1080
+ .vuuView-main {
1081
+ display: flex;
1082
+ flex-direction: var(--vuuView-flexDirection, column);
1083
+ flex-wrap: var(--vuuView-flex-wrap, nowrap);
1084
+ flex: 1;
1085
+ overflow: hidden;
1086
+ position: relative;
1087
+ }
1088
+ .vuuView-main > * {
1089
+ flex-basis: auto;
1090
+ flex-grow: var(--vuuView-flex-grow, 1);
1091
+ flex-shrink: var(--vuuView-flex-shrink, 1);
1092
+ }
1093
+ .vuuView-collapsed .vuuView-main {
1094
+ display: none;
1095
+ }
1096
+ .vuuView-collapsed + .Splitter {
1097
+ display: none;
1098
+ }
1099
+ .vuuView-collapsed .Toolbar-vertical {
1100
+ border-right: solid 1px var(--grey40);
1101
+ }
1102
+ .vuuView-collapsed .Toolbar-vertical .toolbar-title {
1103
+ display: none;
1104
+ }
1105
+
934
1106
  /* src/layout-header/Header.css */
935
1107
  .vuuHeader {
936
- --saltToolbar-background: var(--salt-container-tertiary-background);
1108
+ --saltButton-height: 24px;
1109
+ --saltButton-width: 24px;
937
1110
  }
938
1111
  .salt-density-high .vuuHeader {
939
1112
  --saltToolbarField-marginTop: 0;
@@ -942,15 +1115,26 @@ path.drop-target.centre {
942
1115
  /* src/overflow-container/OverflowContainer.css */
943
1116
  .vuuOverflowContainer {
944
1117
  --item-gap: 4px;
1118
+ --overflow-direction: row;
945
1119
  --overflow-width: 0px;
946
1120
  --overflow-order: 99;
947
1121
  --border-size: calc((var(--overflow-container-height) - 24px) / 2);
948
1122
  background-color: var(--vuuOverflowContainer-background, black);
949
1123
  height: var(--overflow-container-height);
950
1124
  }
1125
+ .vuuOverflowContainer-horizontal {
1126
+ --item-align: center;
1127
+ --item-margin: 0 0 0 var(--item-gap);
1128
+ }
1129
+ .vuuOverflowContainer-vertical {
1130
+ --item-align: stretch;
1131
+ --item-margin: var(--item-gap) 0 0 0;
1132
+ --overflow-direction: column;
1133
+ }
951
1134
  .vuuOverflowContainer-wrapContainer {
952
- align-items: center;
1135
+ align-items: var(--item-align);
953
1136
  display: flex;
1137
+ flex-direction: var(--overflow-direction);
954
1138
  flex-wrap: wrap;
955
1139
  height: var(--overflow-container-height);
956
1140
  min-width: 44px;
@@ -967,13 +1151,16 @@ path.drop-target.centre {
967
1151
  .vuuOverflowContainer-item:first-child {
968
1152
  --item-gap: 0;
969
1153
  }
1154
+ .vuuOverflowContainer-item:first-child {
1155
+ --item-margin: 0;
1156
+ }
970
1157
  .vuuOverflowContainer-item {
971
1158
  align-items: inherit;
972
1159
  display: flex;
973
1160
  order: 1;
974
1161
  position: relative;
975
1162
  height: var(--overflow-container-height);
976
- margin-left: var(--item-gap);
1163
+ margin: var(--item-margin);
977
1164
  }
978
1165
  .vuuOverflowContainer-item.wrapped {
979
1166
  --overflow-item-bg: #ccc;
@@ -1031,16 +1218,6 @@ path.drop-target.centre {
1031
1218
  --vuu-icon-color: var(--salt-selectable-foreground);
1032
1219
  }
1033
1220
 
1034
- /* src/palette/PaletteSalt.css */
1035
- .vuuPalette {
1036
- --list-item-header-bg: inherit;
1037
- --list-item-header-color: inherit;
1038
- --list-item-padding: 0 6px 0 24px;
1039
- --list-item-header-twisty-color: black;
1040
- --list-item-header-twisty-left: 3px;
1041
- --list-item-header-twisty-right: auto;
1042
- }
1043
-
1044
1221
  /* src/stack/Stack.css */
1045
1222
  .Tabs {
1046
1223
  display: flex;
@@ -1048,6 +1225,7 @@ path.drop-target.centre {
1048
1225
  flex-direction: column;
1049
1226
  }
1050
1227
  .Tabs-horizontal {
1228
+ --vuu-tabs-border-style: none solid none none;
1051
1229
  flex-direction: row;
1052
1230
  }
1053
1231
  .Tabs .Toolbar:before {
@@ -1062,7 +1240,9 @@ path.drop-target.centre {
1062
1240
  .vuuTabHeader {
1063
1241
  --saltTabs-activationIndicator-background: transparent;
1064
1242
  --saltToolbarField-marginTop: calc(var(--salt-size-unit) - 1px);
1065
- border-bottom: solid 1px var(--salt-container-primary-borderColor);
1243
+ border-color: var(--salt-container-primary-borderColor);
1244
+ border-style: var(--vuu-tabs-border-style, none none solid none);
1245
+ border-width: 1px;
1066
1246
  }
1067
1247
  .vuuTabHeader + .hwFlexbox,
1068
1248
  .vuuTabHeader + * {