@vuu-ui/vuu-layout 0.8.8-debug → 0.8.9-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.
Files changed (35) hide show
  1. package/cjs/index.js +35111 -4306
  2. package/cjs/index.js.map +4 -4
  3. package/esm/index.js +35538 -4414
  4. package/esm/index.js.map +4 -4
  5. package/index.css +2326 -264
  6. package/index.css.map +3 -3
  7. package/package.json +3 -5
  8. package/types/drag-drop/Draggable.d.ts +3 -2
  9. package/types/drag-drop/DropTarget.d.ts +1 -1
  10. package/types/drag-drop/dragDropTypes.d.ts +2 -2
  11. package/types/index.d.ts +2 -1
  12. package/types/layout-provider/LayoutProvider.d.ts +4 -3
  13. package/types/layout-provider/LayoutProviderContext.d.ts +3 -2
  14. package/types/layout-provider/useLayoutDragDrop.d.ts +1 -1
  15. package/types/layout-reducer/flexUtils.d.ts +1 -1
  16. package/types/layout-reducer/layoutTypes.d.ts +7 -0
  17. package/types/layout-reducer/layoutUtils.d.ts +4 -1
  18. package/types/layout-view/ViewContext.d.ts +12 -3
  19. package/types/measured-container/MeasuredContainer.d.ts +9 -0
  20. package/types/measured-container/index.d.ts +2 -0
  21. package/types/measured-container/useMeasuredContainer.d.ts +22 -0
  22. package/types/measured-container/useResizeObserver.d.ts +15 -0
  23. package/types/overflow-container/OverflowContainer.d.ts +3 -0
  24. package/types/overflow-container/overflow-utils.d.ts +1 -1
  25. package/types/overflow-container/useOverflowContainer.d.ts +11 -4
  26. package/types/palette/Palette.d.ts +4 -3
  27. package/types/toolbar/Toolbar.d.ts +11 -0
  28. package/types/toolbar/index.d.ts +1 -0
  29. package/types/toolbar/tabstrip-dom-utils.d.ts +2 -0
  30. package/types/toolbar/useKeyboardNavigation.d.ts +29 -0
  31. package/types/toolbar/useSelection.d.ts +22 -0
  32. package/types/toolbar/useToolbar.d.ts +22 -0
  33. package/types/utils/pathUtils.d.ts +14 -1
  34. package/types/utils/propUtils.d.ts +1 -1
  35. package/types/common-types.d.ts +0 -8
package/index.css CHANGED
@@ -229,7 +229,7 @@
229
229
  /* src/drag-drop/DropTargetRenderer.css */
230
230
  #hw-drag-canvas {
231
231
  visibility: hidden;
232
- z-index: 1;
232
+ z-index: 10;
233
233
  position: absolute;
234
234
  top: 0px;
235
235
  left: 0;
@@ -292,15 +292,17 @@ path.drop-target.centre {
292
292
  }
293
293
 
294
294
  /* src/flexbox/Splitter.css */
295
- .Splitter {
295
+ .vuuSplitter {
296
+ --splitter-background: var(--salt-separable-secondary-borderColor);
297
+ --splitter-borderColor: var(--salt-separable-secondary-borderColor);
298
+ --splitter-borderStyle: none;
299
+ --splitter-borderWidth: 0;
296
300
  --splitter-size: 3px;
297
- --splitter-border-width: 4px;
298
- --splitter-border-style: none;
299
- --splitter-border-color: white;
300
301
  align-items: center;
301
- background-color: var(--salt-palette-neutral-secondary-separator);
302
- border-color: var(--splitter-border-color);
303
- border-style: var(--splitter-border-style);
302
+ background-color: var(--splitter-background);
303
+ border-color: var(--splitter-borderColor);
304
+ border-style: var(--splitter-borderStyle);
305
+ border-width: var(--splitter-borderWidth);
304
306
  box-sizing: border-box;
305
307
  display: flex;
306
308
  justify-content: center;
@@ -308,63 +310,61 @@ path.drop-target.centre {
308
310
  outline: none;
309
311
  z-index: 1;
310
312
  }
311
- .Splitter:hover {
312
- background-color: var(--salt-palette-neutral-primary-separator);
313
+ .vuuSplitter:hover {
314
+ --splitter-background: var(--salt-separable-primary-borderColor);
313
315
  }
314
- .active.Splitter {
315
- background-color: var(--salt-palette-interact-outline);
316
+ .vuuSplitter-active {
317
+ --splitter-background: var(--salt-separable-primary-borderColor);
316
318
  }
317
- .Splitter.column {
319
+ .vuuSplitter-column {
318
320
  cursor: ns-resize;
319
321
  height: var(--splitter-size);
320
- border-width: var(--splitter-border-width) 0;
321
322
  }
322
- .Splitter:not(.column) {
323
+ .vuuSplitter:not(.vuuSplitter-column) {
323
324
  cursor: ew-resize;
324
325
  width: var(--splitter-size);
325
- border-width: 0 var(--splitter-border-width);
326
326
  }
327
- .Splitter:before {
327
+ .vuuSplitter:before {
328
328
  border: none;
329
329
  border-radius: 0;
330
330
  content: "";
331
331
  display: block;
332
332
  padding: 0;
333
333
  }
334
- .Splitter .grab-zone {
334
+ .vuuSplitter-grab-zone {
335
335
  position: absolute;
336
336
  background-color: rgba(255, 0, 0, 0.01);
337
337
  cursor: inherit;
338
338
  }
339
- .Splitter.column .grab-zone {
339
+ .vuuSplitter-column .vuuSplitter-grab-zone {
340
340
  left: 0;
341
341
  right: 0;
342
342
  top: -5px;
343
343
  bottom: -5px;
344
344
  }
345
- .Splitter:not(.column) .grab-zone {
345
+ .vuuSplitter:not(.vuuSplitter-column) .vuuSplitter-grab-zone {
346
346
  left: -5px;
347
347
  right: -5px;
348
348
  top: 0;
349
349
  bottom: 0;
350
350
  }
351
- .active.Splitter:not(.column) .grab-zone {
351
+ .vuuSplitter-active:not(.vuuSplitter-column) .vuuSplitter-grab-zone {
352
352
  background-color: rgba(255, 255, 255, .05);
353
353
  left: -150px;
354
354
  right: -150px;
355
355
  }
356
- .Splitter:not(.column):before {
356
+ .vuuSplitter:not(.vuuSplitter-column):before {
357
357
  width: 1px;
358
358
  height: 10px;
359
359
  background: linear-gradient(to bottom, var(--grey900) 10%, transparent 10%, transparent 30%, var(--grey900) 30%, var(--grey900) 40%, transparent 40%, transparent 60%, var(--grey900) 60%, var(--grey900) 70%, transparent 70%, transparent 90%, var(--grey900) 90%);
360
360
  }
361
- .active.Splitter.column:before {
361
+ .vuuSplitter-active.vuuSplitter-column:before {
362
362
  background: linear-gradient(to right, #ffffff 10%, transparent 10%, transparent 30%, #ffffff 30%, #ffffff 40%, transparent 40%, transparent 60%, #ffffff 60%, #ffffff 70%, transparent 70%, transparent 90%, #ffffff 90%);
363
363
  }
364
- .active.Splitter:not(.column):before {
364
+ .vuuSplitter-active:not(.vuuSplitter-column):before {
365
365
  background: linear-gradient(to bottom, #ffffff 10%, transparent 10%, transparent 30%, #ffffff 30%, #ffffff 40%, transparent 40%, transparent 60%, #ffffff 60%, #ffffff 70%, transparent 70%, transparent 90%, #ffffff 90%);
366
366
  }
367
- .Splitter.column:before {
367
+ .vuuSplitter-column:before {
368
368
  width: 10px;
369
369
  height: 1px;
370
370
  background: linear-gradient(to right, var(--grey900) 10%, transparent 10%, transparent 30%, var(--grey900) 30%, var(--grey900) 40%, transparent 40%, transparent 60%, var(--grey900) 60%, var(--grey900) 70%, transparent 70%, transparent 90%, var(--grey900) 90%);
@@ -520,6 +520,191 @@ 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
+ /* ../vuu-ui-controls/src/dropdown/Dropdown.css */
524
+ .vuuDropdown {
525
+ --saltIcon-margin: 2px 0 0 8px;
526
+ --saltButton-borderStyle: solid;
527
+ --saltButton-borderColor: var(--salt-editable-borderColor);
528
+ --saltButton-borderWidth: 1px;
529
+ --saltButton-borderRadius: 6px;
530
+ --saltButton-height: var(--vuuDropdown-height, auto);
531
+ display: inline-block;
532
+ line-height: 0;
533
+ position: relative;
534
+ width: var(--vuuDropdown-width, auto);
535
+ }
536
+ .vuuDropdown-fullWidth {
537
+ width: 100%;
538
+ }
539
+ .vuuDropdown-popup {
540
+ background: var(--salt-container-primary-background);
541
+ z-index: calc(var(--salt-zIndex-flyover) - 1);
542
+ }
543
+ .vuuDropdown-popup-component {
544
+ --vuuList-borderStyle: none;
545
+ }
546
+ .vuuDropdownButton {
547
+ width: 100%;
548
+ }
549
+
550
+ /* ../vuu-ui-controls/src/dropdown/DropdownButton.css */
551
+ .vuuDropdownButton {
552
+ --saltButton-background-hover: var(--salt-actionable-secondary-background);
553
+ --saltButton-background-active: var(--salt-actionable-secondary-background);
554
+ --saltButton-fontWeight: var(--salt-text-fontWeight-strong);
555
+ --saltButton-textAlign: left;
556
+ --saltButton-textTransform: none;
557
+ --saltButton-width: 100%;
558
+ --vuu-icon-size: 16px;
559
+ }
560
+ .vuuDropdownButton:active {
561
+ --saltIcon-color: var(--salt-actionable-secondary-foreground);
562
+ --saltButton-text-color-active: var(--salt-actionable-secondary-foreground);
563
+ }
564
+ .vuuDropdownButton-fullwidth {
565
+ width: 100%;
566
+ }
567
+ .vuuDropdownButton-content {
568
+ align-items: center;
569
+ flex: 1;
570
+ width: 100%;
571
+ display: flex;
572
+ white-space: nowrap;
573
+ }
574
+ .vuuDropdownButton-buttonLabel {
575
+ display: inline-block;
576
+ letter-spacing: 0;
577
+ overflow: hidden;
578
+ text-overflow: ellipsis;
579
+ width: 100%;
580
+ }
581
+ .vuuDropdownButton-formField.saltButton:focus,
582
+ .vuuDropdownButton-formField.saltButton:focus-visible {
583
+ outline: none;
584
+ }
585
+
586
+ /* ../vuu-ui-controls/src/list/Highlighter.css */
587
+ .saltHighlighter-highlight {
588
+ font-weight: var(--salt-text-fontWeight-strong);
589
+ }
590
+
591
+ /* ../vuu-ui-controls/src/list/CheckboxIcon.css */
592
+ .vuuCheckboxIcon {
593
+ --vuu-icon-size: 12px;
594
+ --vuu-icon-left: -1px;
595
+ --vuu-icon-top: -1px;
596
+ --vuu-icon-svg: var(--vuu-svg-tick);
597
+ border-style: solid;
598
+ border-color: var(--vuuCheckboxIcon-borderColor, var(--salt-selectable-borderColor));
599
+ border-radius: var(--vuuCheckboxIcon-borderRadius, 3px);
600
+ border-width: 1px;
601
+ display: inline-block;
602
+ height: var(--vuuCheckboxIcon-size, 12px);
603
+ position: relative;
604
+ width: var(--vuuCheckboxIcon-size, 12px);
605
+ }
606
+ .vuuCheckboxIcon-checked {
607
+ background-color: var(--vuuCheckboxIcon-background-checked, var(--salt-selectable-background-selected));
608
+ border-color: var(--vuuCheckboxIcon-borderColor-checked, var(--salt-selectable-borderColor-selected));
609
+ }
610
+ .vuuCheckboxIcon-checked:after {
611
+ content: "";
612
+ background-color: white;
613
+ left: var(--vuu-icon-left, auto);
614
+ height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));
615
+ -webkit-mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
616
+ mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
617
+ mask-repeat: no-repeat;
618
+ -webkit-mask-repeat: no-repeat;
619
+ position: absolute;
620
+ top: var(--vuu-icon-top, auto);
621
+ width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));
622
+ }
623
+
624
+ /* ../vuu-ui-controls/src/list/ListItem.css */
625
+ .vuuListItem {
626
+ --list-item-text-color: var(--salt-text-primary-foreground);
627
+ --list-item-background: var(--vuuList-item-background, var(--salt-selectable-background));
628
+ --list-item-text-color-active: var(--salt-text-primary-foreground);
629
+ --list-item-background-active: var(--salt-selectable-background-selected);
630
+ --list-item-alignItems: center;
631
+ }
632
+ .vuuListItem.vuuHighlighted {
633
+ --saltCheckbox-icon-stroke: var(--salt-selectable-borderColor-hover);
634
+ --list-item-background: var(--salt-selectable-background-hover);
635
+ }
636
+ .vuuListItemHeader {
637
+ font-weight: var(--salt-text-fontWeight-strong);
638
+ }
639
+ .vuuListItemHeader[data-sticky] {
640
+ position: sticky;
641
+ top: 0;
642
+ z-index: 1;
643
+ }
644
+ .vuuListItem {
645
+ color: var(--list-item-text-color);
646
+ cursor: var(--vuuList-item-cursor, pointer);
647
+ background: var(--vuuList-item-background, var(--list-item-background));
648
+ font-size: var(--salt-text-fontSize);
649
+ text-align: var(--salt-text-textAlign);
650
+ line-height: var(--salt-text-lineHeight);
651
+ height: var(--vuuList-item-height, var(--list-item-height, auto));
652
+ margin-bottom: var(--list-item-gap);
653
+ padding: 0 var(--vuuListItem-padding, var(--salt-size-unit));
654
+ left: 0;
655
+ right: 0;
656
+ display: flex;
657
+ position: relative;
658
+ align-items: var(--list-item-alignItems);
659
+ white-space: nowrap;
660
+ }
661
+ .vuuListItem:last-child {
662
+ margin-bottom: 0px;
663
+ }
664
+ .vuuListItem-checkbox {
665
+ --list-item-background-active: var(--salt-selectable-background);
666
+ --list-item-text-color-active: var(--salt-text-primary-foreground);
667
+ --list-item-text-padding: 0 0 0 var(--salt-size-unit);
668
+ }
669
+ .vuuListItem[aria-selected=true]:not(.vuuListItem-checkbox) {
670
+ --list-item-background: var(--list-item-background-active);
671
+ color: var(--list-item-text-color-active);
672
+ }
673
+ .vuuListItem.vuuDisabled {
674
+ --list-item-text-color: var(--salt-text-primary-foreground-disabled);
675
+ cursor: var(--salt-selectable-cursor-disabled);
676
+ }
677
+ .vuuListItem.vuuFocusVisible {
678
+ outline-style: var(--salt-focused-outlineStyle);
679
+ outline-width: var(--salt-focused-outlineWidth);
680
+ outline-offset: -2px;
681
+ outline-color: var(--salt-focused-outlineColor);
682
+ }
683
+ .vuuListItem.vuuFocusVisible:after {
684
+ content: none;
685
+ }
686
+ .vuuListItem[aria-selected=true]:not(.vuuListItem-checkbox).vuuFocusVisible {
687
+ outline-color: var(--list-item-selected-focus-outlineColor);
688
+ }
689
+ .vuuListItem-textWrapper {
690
+ flex: 1;
691
+ overflow: hidden;
692
+ padding: var(--list-item-text-padding, 0px);
693
+ white-space: nowrap;
694
+ text-overflow: ellipsis;
695
+ }
696
+ .vuuListItem-proxy {
697
+ position: absolute !important;
698
+ visibility: hidden;
699
+ }
700
+ .vuuDraggable-list-item {
701
+ --vuuList-item-height: 24px;
702
+ background-color: white;
703
+ }
704
+ .vuuListItem.vuuDraggable-dragAway {
705
+ display: none;
706
+ }
707
+
523
708
  /* ../vuu-ui-controls/src/drag-drop/Draggable.css */
524
709
  .vuuDraggable {
525
710
  background: transparent;
@@ -567,257 +752,2114 @@ path.drop-target.centre {
567
752
  order: 1;
568
753
  }
569
754
 
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;
755
+ /* ../vuu-ui-controls/src/list/List.css */
756
+ .vuuList {
757
+ --list-background: var(--salt-container-primary-background);
758
+ --list-borderStyle: var(--vuuList-borderStyle,var(--salt-container-borderStyle));
759
+ --list-borderWidth: var(--salt-size-border);
760
+ --list-height: auto;
761
+ --list-item-height: var(--salt-size-stackable);
762
+ --list-item-gap: 0px;
763
+ --list-maxHeight: 100%;
764
+ --vuuDraggable-display: block;
765
+ --vuuDraggable-spacer-height: 0;
766
+ --vuuDraggable-spacer-width: 100%;
767
+ --vuuDraggable-transitionProp: height;
768
+ --vuuMeasuredContainer-height: var(--computed-list-height);
769
+ background: var(--list-background);
770
+ border-color: var(--salt-container-primary-borderColor);
771
+ border-style: var(--list-borderStyle);
772
+ border-width: var(--list-borderWidth);
773
+ height: var(--saltList-height, var(--list-height));
774
+ max-height: var(--list-maxHeight);
584
775
  outline: none;
585
- padding: 0 var(--editableLabel-padding);
586
776
  position: relative;
587
- z-index: var(--salt-zIndex-default);
777
+ user-select: none;
778
+ width: var(--saltList-width, auto);
588
779
  }
589
- .vuuEditableLabel:before {
590
- content: attr(data-text);
591
- display: block;
592
- height: 0px;
593
- visibility: hidden;
594
- white-space: pre-wrap;
780
+ .vuuList-contentSized {
781
+ box-sizing: content-box;
595
782
  }
596
- .vuuEditableLabel .saltInput {
597
- font-weight: var(--salt-text-fontWeight);
598
- left: var(--editableLabel-padding, 0);
599
- padding: 0;
600
- outline-style: none;
783
+ .vuuList-borderless {
784
+ --list-borderStyle: none;
785
+ }
786
+ .vuuList-viewport {
787
+ height: var(--computed-list-height, var(--measured-px-height));
788
+ overflow: auto;
789
+ width: var(--measured-px-width);
790
+ }
791
+ .vuuListItemHeader {
792
+ --saltList-item-background: var(--list-item-header-background);
793
+ color: var(--list-item-header-color);
794
+ }
795
+ .vuuListItemHeader[data-sticky=true] {
796
+ --saltList-item-background: var(--list-background);
797
+ position: sticky;
798
+ top: 0;
799
+ z-index: 1;
800
+ }
801
+ .vuuList-collapsible .vuuListItemHeader:after {
802
+ border-width: var(--checkbox-borderWidth);
803
+ border-color: var(--checkbox-borderColor);
804
+ content: var(--list-item-header-twisty-content);
805
+ -webkit-mask: var(--list-svg-chevron-down) center center/12px 12px no-repeat;
806
+ mask: var(--list-svg-chevron-down) center center/12px 12px no-repeat;
807
+ background: var(--list-item-header-twisty-color);
808
+ height: 12px;
809
+ left: var(--list-item-header-twisty-left);
810
+ right: var(--list-item-header-twisty-right);
811
+ margin-top: -8px;
601
812
  position: absolute;
602
- right: var(--editableLabel-padding, 0);
603
- top: var(--saltEditableLabel-top, 2px);
604
- width: auto;
813
+ top: var(--list-item-header-twisty-top);
814
+ transition: transform 0.3s;
815
+ width: 12px;
605
816
  }
606
- .vuuEditableLabel .saltInput-activationIndicator {
607
- display: none;
817
+ .vuuListItemHeader[aria-expanded=false]:after {
818
+ transform: rotate(-90deg);
608
819
  }
609
- .vuuEditableLabel-input {
610
- background-color: transparent;
820
+ .vuuList-scrollingContentContainer {
821
+ box-sizing: inherit;
822
+ position: relative;
823
+ }
824
+ .vuuList-virtualized .vuuListItem {
825
+ line-height: 30px;
826
+ position: absolute;
827
+ top: 0;
828
+ left: 0;
829
+ right: 0;
830
+ will-change: transform;
831
+ }
832
+ .vuuList.saltFocusVisible:after {
833
+ inset: 2px;
834
+ }
835
+
836
+ /* ../vuu-ui-controls/src/list/RadioIcon.css */
837
+ .vuuRadioIcon {
838
+ --vuu-icon-size: 12px;
839
+ --vuu-icon-left: -1px;
840
+ --vuu-icon-top: -1px;
841
+ --vuu-icon-svg: var(--vuu-svg-radio);
842
+ border-style: solid;
843
+ border-color: var(--vuuRadioIcon-borderColor, var(--salt-selectable-borderColor));
844
+ border-radius: 50%;
845
+ border-width: 1px;
846
+ display: inline-block;
847
+ height: var(--vuuRadioIcon-size, 12px);
848
+ position: relative;
849
+ width: var(--vuuRadioIcon-size, 12px);
850
+ }
851
+ .vuuRadioIcon-checked {
852
+ background-image: var(--vuu-svg-radio);
611
853
  border: none;
612
- box-sizing: content-box;
613
- display: block;
614
- flex: 1;
615
- font: inherit;
854
+ background-repeat: no-repeat;
855
+ }
856
+ .vuuRadioIcon-checked:after {
857
+ content: "";
858
+ left: var(--vuu-icon-left, auto);
859
+ height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));
860
+ -webkit-mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
861
+ mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
862
+ mask-repeat: no-repeat;
863
+ -webkit-mask-repeat: no-repeat;
864
+ position: absolute;
865
+ top: var(--vuu-icon-top, auto);
866
+ width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));
867
+ }
868
+
869
+ /* ../vuu-ui-controls/src/list/ChevronIcon.css */
870
+ .vuuChevronIcon {
871
+ --vuu-icon-size: 14px;
872
+ --vuu-icon-left: -1px;
873
+ --vuu-icon-top: -1px;
874
+ height: var(--vuuChevronIcon-size, 14px);
875
+ position: relative;
876
+ width: var(--vuuChevronIcon-size, 14px);
877
+ cursor: pointer;
878
+ }
879
+ .vuuChevronIcon:after {
880
+ content: "";
881
+ background-color: #777C94;
882
+ left: var(--vuu-icon-left, auto);
883
+ height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));
884
+ -webkit-mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
885
+ mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
886
+ mask-repeat: no-repeat;
887
+ -webkit-mask-repeat: no-repeat;
888
+ position: absolute;
889
+ top: var(--vuu-icon-top, auto);
890
+ width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));
891
+ }
892
+ .vuuChevronIcon.up {
893
+ --vuu-icon-svg: var(--vuu-svg-chevron-up);
894
+ }
895
+ .vuuChevronIcon.down {
896
+ --vuu-icon-svg: var(--vuu-svg-chevron-down);
897
+ }
898
+ .vuuChevronIcon.left {
899
+ --vuu-icon-svg: var(--vuu-svg-chevron-left);
900
+ }
901
+ .vuuChevronIcon.right {
902
+ --vuu-icon-svg: var(--vuu-svg-chevron-right);
903
+ }
904
+
905
+ /* ../vuu-ui-controls/src/editable-label/EditableLabel.css */
906
+ .vuuEditableLabel {
907
+ --editableLabel-padding: var(--vuuEditableLabel-padding, 6px);
908
+ --editableLabel-height: var(--vuuEditableLabel-height, 26px);
909
+ --saltInput-background: transparent;
910
+ --saltInput-height: calc(var(--editableLabel-height) - 4px);
911
+ --saltInput-minWidth: 14px;
912
+ color: inherit;
913
+ cursor: default;
914
+ display: flex;
915
+ flex-direction: column;
916
+ font-size: var(--salt-text-fontSize);
917
+ height: var(--editableLabel-height);
918
+ justify-content: center;
919
+ max-width: 170px;
920
+ outline: none;
921
+ overflow: hidden;
922
+ padding: 0 var(--editableLabel-padding);
923
+ position: relative;
924
+ text-overflow: ellipsis;
925
+ white-space: nowrap;
926
+ z-index: var(--salt-zIndex-default);
927
+ }
928
+ .vuuEditableLabel:before {
929
+ content: attr(data-text);
930
+ display: block;
931
+ height: 0px;
932
+ visibility: hidden;
933
+ white-space: pre-wrap;
934
+ }
935
+ .vuuEditableLabel .saltInput {
936
+ font-weight: var(--salt-text-fontWeight);
937
+ left: var(--editableLabel-padding, 0);
938
+ padding: 0;
939
+ outline-style: none;
940
+ position: absolute;
941
+ right: var(--editableLabel-padding, 0);
942
+ top: var(--saltEditableLabel-top, 2px);
943
+ width: auto;
944
+ }
945
+ .vuuEditableLabel .saltInput-activationIndicator {
946
+ display: none;
947
+ }
948
+ .vuuEditableLabel-input {
949
+ background-color: transparent;
950
+ border: none;
951
+ box-sizing: content-box;
952
+ color: inherit;
953
+ display: block;
954
+ flex: 1;
955
+ font: inherit;
956
+ height: 20px;
957
+ margin: 0;
958
+ min-width: 0;
959
+ outline: none;
960
+ padding: 0;
961
+ }
962
+ .vuuEditableLabel-label {
963
+ overflow: hidden;
964
+ text-overflow: ellipsis;
965
+ white-space: nowrap;
966
+ }
967
+
968
+ /* ../vuu-ui-controls/src/expando-input/ExpandoInput.css */
969
+ .vuuExpandoInput {
970
+ --salt-editable-secondary-background: white;
971
+ --expandoInput-height: var(--vuuExpandoInput-height, 26px);
972
+ --expandoInput-padding: var(--vuuExpandoInput-padding, 6px);
973
+ --saltInput-height: calc(var(--vuuExpandoInput-height) - 4px);
974
+ --saltInput-minWidth: var(--vuuExpandoInput-minWidth, 8px);
975
+ border: var(--vuuExpandoInput-border, none);
976
+ border-radius: var(--vuuExpandoInput-borderRadius, 0);
977
+ color: inherit;
978
+ cursor: default;
979
+ display: inline-block;
980
+ font-size: var(--salt-text-fontSize);
981
+ height: var(--expandoInput-height);
982
+ min-width: calc(var(--saltInput-minWidth) + 2 * var(--expandoInput-padding));
983
+ outline: none;
984
+ padding: 0 var(--expandoInput-padding);
985
+ position: relative;
986
+ }
987
+ .vuuExpandoInput:before {
988
+ content: attr(data-text);
989
+ display: block;
990
+ height: 0px;
991
+ visibility: hidden;
992
+ white-space: pre-wrap;
993
+ }
994
+ .vuuExpandoInput .saltInput {
995
+ font-weight: var(--salt-text-fontWeight);
996
+ left: var(--expandoInput-padding, 0);
997
+ padding: 0;
998
+ outline-style: none;
999
+ position: absolute;
1000
+ right: var(--expandoInput-padding, 0);
1001
+ top: var(--vuuExpandoInput-top, 2px);
1002
+ width: auto;
1003
+ }
1004
+ .vuuExpandoInput .saltInput-activationIndicator {
1005
+ display: none;
1006
+ }
1007
+ .vuuExpandoInput-input {
1008
+ background-color: transparent;
1009
+ border: none;
1010
+ box-sizing: content-box;
1011
+ display: block;
1012
+ flex: 1;
1013
+ font: inherit;
616
1014
  height: 20px;
617
1015
  margin: 0;
618
1016
  min-width: 0;
619
1017
  outline: none;
620
1018
  padding: 0;
621
1019
  }
622
-
623
- /* ../vuu-ui-controls/src/list/Highlighter.css */
624
- .saltHighlighter-highlight {
625
- font-weight: var(--salt-text-fontWeight-strong);
1020
+
1021
+ /* ../vuu-ui-controls/src/inputs/Checkbox.css */
1022
+ .vuuCheckbox {
1023
+ display: flex;
1024
+ height: 24px;
1025
+ align-items: center;
1026
+ gap: 6px;
1027
+ color: var(--light-text-primary, #15171B);
1028
+ font-feature-settings:
1029
+ "ss02" on,
1030
+ "ss01" on,
1031
+ "salt" on,
1032
+ "liga" off;
1033
+ font-size: 12px;
1034
+ font-weight: 400;
1035
+ cursor: pointer;
1036
+ }
1037
+
1038
+ /* ../vuu-ui-controls/src/inputs/RadioButton.css */
1039
+ .vuuRadioButton {
1040
+ display: flex;
1041
+ height: 24px;
1042
+ align-items: center;
1043
+ gap: 6px;
1044
+ color: var(--light-text-primary, #15171B);
1045
+ font-feature-settings:
1046
+ "ss02" on,
1047
+ "ss01" on,
1048
+ "salt" on,
1049
+ "liga" off;
1050
+ font-size: 12px;
1051
+ font-weight: 400;
1052
+ cursor: pointer;
1053
+ }
1054
+ .radio {
1055
+ position: relative;
1056
+ height: 12px;
1057
+ }
1058
+ input[type=radio] {
1059
+ position: absolute;
1060
+ appearance: none;
1061
+ width: 100%;
1062
+ height: 100%;
1063
+ border-radius: 50%;
1064
+ margin: 0;
1065
+ top: 0;
1066
+ }
1067
+
1068
+ /* ../vuu-table/src/table/ColumnResizer.css */
1069
+ .vuuColumnResizer {
1070
+ background-color: var(--columnResizer-color);
1071
+ cursor: col-resize;
1072
+ height: var(--header-height);
1073
+ position: relative;
1074
+ width: 4px;
1075
+ }
1076
+ .vuuColumnResizer:hover {
1077
+ --columnResizer-color: var(--salt-color-blue-500);
1078
+ }
1079
+ .vuuColumnResizer:after {
1080
+ content: "";
1081
+ position: absolute;
1082
+ width: var(--columnResizer-width, 1px);
1083
+ top: 0;
1084
+ bottom: 0;
1085
+ right: -1px;
1086
+ background-color: var(--columnResizer-color, var(--salt-separable-tertiary-borderColor));
1087
+ height: var(--columnResizer-height, calc(100% + 1px));
1088
+ }
1089
+
1090
+ /* ../vuu-table/src/table/TableCell.css */
1091
+ .vuuTable {
1092
+ --cell-outline-width: 2px;
1093
+ user-select: none;
1094
+ }
1095
+ [role=cell] {
1096
+ display: inline-block;
1097
+ }
1098
+ [data-align=end] {
1099
+ margin-left: auto;
1100
+ }
1101
+ [data-align=end] + [data-align=end] {
1102
+ margin-left: 0;
1103
+ }
1104
+ .vuuTable-table [role=cell] {
1105
+ --saltEditableLabel-height: 17px;
1106
+ --saltInput-height: 17px;
1107
+ --saltInput-minHeight: 17px;
1108
+ border-right: 1px solid var(--vuuTableCell-border-rightColor);
1109
+ border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);
1110
+ color: var(--salt-text-primary-foreground);
1111
+ cursor: default;
1112
+ height: var(--vuuTable-rowHeight);
1113
+ line-height: calc(var(--vuuTable-rowHeight) - 1px);
1114
+ overflow: hidden;
1115
+ padding: 0 5px;
1116
+ vertical-align: top;
1117
+ }
1118
+ .vuuTable-headerCell:focus,
1119
+ .vuuTable [role=cell]:focus {
1120
+ outline: var(--vuuTableCell-outline, dotted var(--salt-color-blue-400) var(--cell-outline-width));
1121
+ outline-offset: calc(var(--cell-outline-width) * -1);
1122
+ box-shadow: inset 0 0 0 var(--cell-outline-width) white;
1123
+ border-bottom: none;
1124
+ }
1125
+ .vuuTable-headerCell:focus .vuuTable-headerCell-inner {
1126
+ padding-bottom: var(--cell-outline-width);
1127
+ }
1128
+ .vuuTable-headerCell:not(.vuuTable-headerCell-resizing):focus .vuuTable-headerCell-inner {
1129
+ --columnResizer-color: transparent;
1130
+ }
1131
+ .vuuTable [role=cell]:focus {
1132
+ border-right: none;
1133
+ padding-bottom: 1px;
1134
+ }
1135
+ [role=cell][data-editable=true] {
1136
+ --salt-text-fontSize: 10px;
1137
+ --vuu-icon-size: 5px;
1138
+ position: relative;
1139
+ }
1140
+ [role=cell][data-editable=true]:after {
1141
+ top: 0;
1142
+ content: "";
1143
+ background-color: var(--salt-text-secondary-foreground, black);
1144
+ left: 0;
1145
+ height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));
1146
+ -webkit-mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);
1147
+ mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);
1148
+ mask-repeat: no-repeat;
1149
+ -webkit-mask-repeat: no-repeat;
1150
+ position: absolute;
1151
+ transform: rotate(180deg);
1152
+ width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));
1153
+ }
1154
+ [role=cell]:focus[data-editable],
1155
+ [role=cell]:focus-within[data-editable],
1156
+ [role=cell]:has(.saltEditableLabel-editing) {
1157
+ outline: solid var(--salt-color-blue-400) 1px;
1158
+ background-color: white;
1159
+ outline-offset: -1px;
1160
+ }
1161
+ [role=cell]:focus[data-editable=true]:after,
1162
+ [role=cell]:has(.saltEditableLabel):after {
1163
+ background-color: var(--salt-color-blue-400);
1164
+ left: 1px;
1165
+ top: 1px;
1166
+ }
1167
+ .vuuAlignRight {
1168
+ text-align: right;
1169
+ }
1170
+
1171
+ /* ../vuu-table/src/table/TableGroupCell.css */
1172
+ .vuuTableGroupCell {
1173
+ --spacer-width: 20px;
1174
+ --toggle-icon-transform: var(--row-toggle-icon-transform, none);
1175
+ --vuu-icon-width: 18px;
1176
+ align-items: center;
1177
+ display: inline-flex;
1178
+ }
1179
+ .vuuTableGroupCell-spacer {
1180
+ height: 100%;
1181
+ position: relative;
1182
+ width: var(--spacer-width);
1183
+ }
1184
+ .vuuTableGroupCell-spacer:after {
1185
+ background: var(--salt-container-primary-borderColor);
1186
+ content: "";
1187
+ position: absolute;
1188
+ top: 0;
1189
+ bottom: -1px;
1190
+ left: 9px;
1191
+ width: 1px;
1192
+ }
1193
+ .vuuTableGroupCell-toggle {
1194
+ transition: transform 0.25s;
1195
+ transform: var(--toggle-icon-transform);
1196
+ }
1197
+
1198
+ /* ../vuu-table/src/table/TableRow.css */
1199
+ .vuuTableRow {
1200
+ --row-background: var(--table-background);
1201
+ position: absolute;
1202
+ top: 0;
1203
+ }
1204
+ .vuuTableRow-even {
1205
+ --row-background: var(--row-background-even);
1206
+ }
1207
+ .vuuTableRow {
1208
+ background-color: var(--row-background);
1209
+ }
1210
+ .vuuTableRow-expanded {
1211
+ --row-toggle-icon-transform: rotate(90deg);
1212
+ }
1213
+ .vuuTableRow[aria-selected] {
1214
+ background-color: var(--vuuTableRow-selected-background, var(--salt-selectable-background-selected));
1215
+ --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);
1216
+ }
1217
+ .vuuTableRow-preSelected {
1218
+ --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);
1219
+ }
1220
+
1221
+ /* ../vuu-table/src/table/TableGroupHeaderCell.css */
1222
+ .salt-theme {
1223
+ --svg-spinner: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path fill="rgb(38, 112, 169)" d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"><animateTransform attributeName="transform" attributeType="XML" type="rotate" dur="1s" from="0 50 50" to="360 50 50" repeatCount="indefinite" /></path></svg>');
1224
+ }
1225
+ .vuuTable-groupHeaderCell {
1226
+ --cell-align: "flex-start";
1227
+ text-align: left;
1228
+ background: var(--dataTable-background);
1229
+ cursor: default;
1230
+ height: var(--vuuTableHeaderHeight);
1231
+ }
1232
+ .vuuTable-groupHeaderCell-inner {
1233
+ align-items: center;
1234
+ display: flex;
1235
+ height: 100%;
1236
+ padding-left: 1px;
1237
+ }
1238
+ .vuuTable-groupHeaderCell-label {
1239
+ align-items: center;
1240
+ display: flex;
1241
+ flex: 0 0 auto;
1242
+ }
1243
+ .vuuTable-groupHeaderCell-col {
1244
+ align-items: center;
1245
+ background-color: inherit;
1246
+ display: inline-flex;
1247
+ flex: 0 1 auto;
1248
+ height: calc(var(--vuuTableHeaderHeight) - 2px);
1249
+ justify-content: space-between;
1250
+ padding-right: 8px;
1251
+ position: relative;
1252
+ }
1253
+ .vuuTable-groupHeaderCell-close {
1254
+ --vuu-icon-height: 18px;
1255
+ --vuu-icon-width: 18px;
1256
+ cursor: pointer;
1257
+ left: 3px;
1258
+ }
1259
+ .vuuTable-groupHeaderCell-col:nth-child(odd) {
1260
+ background-color: var(--salt-color-gray-50);
1261
+ }
1262
+ .vuuTable-groupHeaderCell-col:nth-child(even) {
1263
+ background-color: var(--salt-color-gray-40);
1264
+ }
1265
+ .vuuTable-groupHeaderCell-col:first-child {
1266
+ clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);
1267
+ padding-left: 3px;
1268
+ z-index: 1;
1269
+ }
1270
+ .vuuTable-groupHeaderCell-col:not(:first-child) {
1271
+ margin-left: -6px;
1272
+ padding-left: 12px;
1273
+ clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);
1274
+ }
1275
+ .vuuTable-groupHeaderCell-resizing {
1276
+ --columnResizer-color: var(--salt-color-blue-500);
1277
+ --columnResizer-height: var(--table-height);
1278
+ --columnResizer-width: 2px;
1279
+ }
1280
+ .vuuTable-groupHeaderCell-pending {
1281
+ --pending-content: "";
1282
+ }
1283
+ .vuuTable-groupHeaderCell-col:has(+ .vuuColumnResizer):after {
1284
+ content: var(--pending-content);
1285
+ width: 24px;
1286
+ height: 24px;
1287
+ background-image: var(--svg-spinner);
1288
+ background-repeat: no-repeat;
1289
+ background-size: cover;
1290
+ }
1291
+
1292
+ /* ../vuu-table/src/table/SortIndicator.css */
1293
+ .vuuSortIndicator {
1294
+ --menu-icon-size: 18px;
1295
+ --menu-item-icon-color: black;
1296
+ display: flex;
1297
+ flex-direction: column;
1298
+ position: relative;
1299
+ width: 18px;
1300
+ }
1301
+ .vuuSortPosition {
1302
+ font-size: 10px;
1303
+ line-height: 10px;
1304
+ text-align: center;
1305
+ }
1306
+
1307
+ /* ../vuu-table/src/table/TableHeaderCell.css */
1308
+ .vuuTable-heading:nth-child(2) {
1309
+ --heading-top: calc(var(--header-height));
1310
+ }
1311
+ .vuuTable-heading:nth-child(3) {
1312
+ --heading-top: calc(var(--header-height) * 2);
1313
+ }
1314
+ .vuuTable-heading:nth-child(3) {
1315
+ --heading-top: calc(var(--header-height) * 3);
1316
+ }
1317
+ .vuuTable-headingCell {
1318
+ background: var(--dataTable-background);
1319
+ border-color: var(--salt-separable-tertiary-borderColor);
1320
+ border-style: solid solid solid none;
1321
+ border-width: 1px;
1322
+ color: var(--salt-text-secondary-foreground);
1323
+ display: inline-block;
1324
+ height: var(--vuuTableHeaderHeight);
1325
+ padding: 0 !important;
1326
+ }
1327
+ .vuuTable-heading:has(+ .vuuTable-heading) > .vuuTable-headingCell {
1328
+ border-bottom-color: transparent;
1329
+ }
1330
+ [role=columnHeader] {
1331
+ --vuuTableCell-border-bottomColor: var(--salt-separable-tertiary-borderColor);
1332
+ --cell-align: "flex-start";
1333
+ display: inline-block;
1334
+ text-align: left;
1335
+ background: var(--dataTable-background);
1336
+ border-right: 1px solid var(--vuuTableCell-border-rightColor);
1337
+ border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);
1338
+ color: var(--salt-text-secondary-foreground);
1339
+ cursor: default;
1340
+ height: var(--vuuTableHeaderHeight);
1341
+ padding: 0 !important;
1342
+ vertical-align: top;
1343
+ }
1344
+ .vuuTable-headerCell-right {
1345
+ --cell-align: flex-end;
1346
+ }
1347
+ .vuuTable-headerCell-inner {
1348
+ align-items: stretch;
1349
+ display: flex;
1350
+ height: 100%;
1351
+ padding: 0 0 0 3px;
1352
+ }
1353
+ .vuuTable-headerCell-inner:has(.vuuFilterIndicator) {
1354
+ padding-left: 0;
1355
+ }
1356
+ .vuuTable-headerCell-label {
1357
+ align-items: center;
1358
+ justify-content: var(--cell-align);
1359
+ display: flex;
1360
+ flex: 1 1 auto;
1361
+ }
1362
+ .vuuTable-headerCell-resizing {
1363
+ --columnResizer-color: var(--salt-color-blue-500);
1364
+ --columnResizer-height: var(--table-height);
1365
+ --columnResizer-width: 2px;
1366
+ }
1367
+ [role=headerCell].vuuPinLeft.vuuEndPin:after {
1368
+ box-shadow: 2px 0px 5px rgba(0, 0, 0, 0.4);
1369
+ content: "";
1370
+ position: absolute;
1371
+ width: 1px;
1372
+ background-color: transparent;
1373
+ height: var(--table-height);
1374
+ top: 0;
1375
+ right: 0px;
1376
+ }
1377
+ [role=headerCell].vuuPinRight.vuuEndPin:after {
1378
+ box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.3);
1379
+ content: "";
1380
+ position: absolute;
1381
+ width: 1px;
1382
+ background-color: transparent;
1383
+ height: var(--table-height);
1384
+ top: 0;
1385
+ left: 0px;
1386
+ }
1387
+ [role=headerCell]:is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {
1388
+ top: 0;
1389
+ z-index: 20;
1390
+ }
1391
+ .saltDraggable-vuuTable-headerCell {
1392
+ --dataTable-background: ivory;
1393
+ --vuuTableHeaderHeight: 25px;
1394
+ }
1395
+
1396
+ /* ../vuu-table/src/table/filter-indicator.css */
1397
+ .vuuFilterIndicator {
1398
+ --menu-icon-size: 12px;
1399
+ --menu-item-icon-color: black;
1400
+ align-items: center;
1401
+ cursor: pointer;
1402
+ display: flex;
1403
+ flex: 0 0 18px;
1404
+ flex-direction: column;
1405
+ justify-content: center;
1406
+ position: relative;
1407
+ }
1408
+ .vuuFilterIndicator + .vuuTable-headerCell-inner {
1409
+ padding-left: 0;
1410
+ }
1411
+
1412
+ /* ../vuu-table/src/table/RowBasedTable.css */
1413
+ .vuuTable-table {
1414
+ --vuuTable-rowHeight: var(--row-height);
1415
+ --vuuTableCell-border-bottomColor: transparent;
1416
+ --vuuTableCell-border-rightColor: var(--salt-separable-tertiary-borderColor);
1417
+ border-collapse: separate;
1418
+ border-spacing: 0;
1419
+ border-left: 1px solid #ccc;
1420
+ border: none;
1421
+ font-size: var(--vuuTable-font-size, 10px);
1422
+ margin: 0;
1423
+ min-height: 100%;
1424
+ width: var(--content-width);
1425
+ }
1426
+ .vuuTable-headers {
1427
+ position: sticky;
1428
+ top: 0;
1429
+ z-index: 1;
1430
+ }
1431
+ .vuuTable-body {
1432
+ height: var(--content-height);
1433
+ position: relative;
1434
+ }
1435
+
1436
+ /* ../vuu-table/src/table/Table.css */
1437
+ .vuuTable {
1438
+ --dataTable-background: var(--salt-container-primary-background, inherit);
1439
+ --row-background-even: var(--dataTable-background);
1440
+ --row-background-odd: var(--dataTable-background);
1441
+ --table-background: var(--dataTable-background, none);
1442
+ background-color: var(--dataTable-background);
1443
+ position: relative;
1444
+ }
1445
+ .vuuTable-zebra {
1446
+ --row-background-even: var(--salt-container-secondary-background);
1447
+ }
1448
+ .vuuTable-scrollbarContainer {
1449
+ --scroll-content-width: calc(var(--content-width) - var(--pinned-width-left));
1450
+ border-bottom: none !important;
1451
+ border-top: none !important;
1452
+ border-left: solid 1px var(--salt-container-primary-borderColor);
1453
+ box-shadow: 0px -1px 0px 0px var(--salt-container-primary-borderColor);
1454
+ height: var(--viewport-body-height);
1455
+ left: var(--pinned-width-left);
1456
+ overflow: auto;
1457
+ position: absolute;
1458
+ top: var(--total-header-height);
1459
+ width: calc(var(--table-width) - var(--pinned-width-left) + 1px);
1460
+ }
1461
+ .vuuTable-scrollbarContent {
1462
+ height: calc(var(--content-height) + var(--horizontal-scrollbar-height));
1463
+ position: absolute;
1464
+ width: var(--scroll-content-width, var(--content-width));
1465
+ }
1466
+ .vuuTable-contentContainer {
1467
+ --vuuTableHeaderHeight: var(--header-height, 30px);
1468
+ background-color: var(--salt-container-primary-background);
1469
+ height: calc(var(--table-height) - var(--horizontal-scrollbar-height));
1470
+ position: relative;
1471
+ overflow: auto;
1472
+ overscroll-behavior: none;
1473
+ width: calc(var(--table-width) - var(--vertical-scrollbar-width));
1474
+ }
1475
+ .vuuTable-contentContainer::-webkit-scrollbar {
1476
+ display: none;
1477
+ }
1478
+ :is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {
1479
+ background-color: inherit;
1480
+ position: sticky;
1481
+ z-index: 1;
1482
+ }
1483
+ .vuuTable-settings {
1484
+ --saltButton-height: var(--header-height);
1485
+ --saltButton-width: 15px;
1486
+ position: absolute !important;
1487
+ right: 0;
1488
+ top: 0;
1489
+ }
1490
+ .vuuTable:has(.vuuTable-headerCell-resizing) * {
1491
+ cursor: col-resize;
1492
+ }
1493
+
1494
+ /* ../vuu-table/src/table/Table-loading.css */
1495
+ .vuuTable-loading .vuuTable-table {
1496
+ --skeleton-height: 20px;
1497
+ --skeleton-width: calc(var(--content-width) - 8px);
1498
+ --skeleton-left: 4px;
1499
+ --skeleton-row-height: 16px;
1500
+ --skeleton-size: var(--skeleton-width) var(--skeleton-height);
1501
+ --skeleton-row: linear-gradient( var(--salt-color-gray-20-fade-background) var(--skeleton-row-height), transparent 0 );
1502
+ --skeleton-background-image: var(--skeleton-row);
1503
+ background-image: var(--skeleton-background-image);
1504
+ background-repeat: repeat-y;
1505
+ background-size: var(--skeleton-size);
1506
+ background-position-x: var(--skeleton-left);
1507
+ background-position-y: 27px;
1508
+ }
1509
+ .vuuTable-loading .vuuTable-table {
1510
+ --skeleton-height: 20px;
1511
+ --skeleton-width: calc(var(--content-width) - 8px);
1512
+ --skeleton-left: 4px;
1513
+ --skeleton-row-height: 16px;
1514
+ --skeleton-size: var(--skeleton-width) var(--skeleton-height);
1515
+ --skeleton-row: linear-gradient( var(--salt-color-gray-20-fade-background) var(--skeleton-row-height), transparent 0 );
1516
+ --skeleton-background-image: var(--skeleton-row);
1517
+ background-image: var(--skeleton-background-image);
1518
+ background-repeat: repeat-y;
1519
+ background-size: var(--skeleton-size);
1520
+ background-position-x: var(--skeleton-left);
1521
+ background-position-y: 27px;
1522
+ }
1523
+ .vuuTable-loading .vuuTable-table:after {
1524
+ animation: shimmer 2s infinite;
1525
+ background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .6) 60%, rgba(255, 255, 255, 0));
1526
+ content: "";
1527
+ height: var(--table-height);
1528
+ left: 0px;
1529
+ position: absolute;
1530
+ transform: translateX(-100%);
1531
+ top: var(--header-height);
1532
+ width: var(--content-width);
1533
+ }
1534
+ @keyframes shimmer {
1535
+ 100% {
1536
+ transform: translateX(100%);
1537
+ }
1538
+ }
1539
+
1540
+ /* ../vuu-table/src/table/cell-renderers/json-cell/JsonCell.css */
1541
+ .vuuJsonCell-group {
1542
+ align-items: center;
1543
+ display: inline-flex;
1544
+ height: calc(var(--vuuTable-rowHeight) - 1px);
1545
+ width: 100%;
1546
+ }
1547
+ .vuuJsonCell-toggle {
1548
+ --vuu-icon-color: var(--salt-text-primary-foreground);
1549
+ --vuu-icon-height: calc(var(--vuuTable-rowHeight) - 1px);
1550
+ --vuu-icon-width: 18px;
1551
+ flex-shrink: 0;
1552
+ margin-left: auto;
1553
+ }
1554
+ .vuuJsonCell-name {
1555
+ font-weight: var(--salt-typography-fontWeight-semiBold);
1556
+ }
1557
+ .vuuJsonCell-value {
1558
+ overflow: hidden;
1559
+ text-overflow: ellipsis;
1560
+ }
1561
+
1562
+ /* ../vuu-table/src/table-next/column-resizing/ColumnResizer.css */
1563
+ .vuuColumnResizerNext {
1564
+ background-color: var(--columnResizer-color);
1565
+ cursor: col-resize;
1566
+ height: var(--header-height);
1567
+ margin-left: var(--columnResizer-left, auto);
1568
+ position: relative;
1569
+ width: 2px;
1570
+ }
1571
+ .vuuColumnResizerNext:hover {
1572
+ --columnResizer-color: var(--salt-color-blue-500);
1573
+ }
1574
+ .vuuColumnResizerNext:after {
1575
+ background-color: var(--columnResizer-color, var(--salt-separable-tertiary-borderColor));
1576
+ bottom: 0;
1577
+ content: "";
1578
+ position: absolute;
1579
+ top: 0;
1580
+ right: 0px;
1581
+ height: var(--columnResizer-height, 0);
1582
+ width: 2px;
1583
+ }
1584
+
1585
+ /* ../vuu-table/src/table-next/column-header-pill/ColumnHeaderPill.css */
1586
+ .vuuColumnHeaderPill {
1587
+ --vuu-icon-size: 14px;
1588
+ --menu-item-icon-color: black;
1589
+ --vuu-icon-color: white;
1590
+ --vuu-icon-height: 12px;
1591
+ --vuu-icon-width: 13px;
1592
+ align-items: center;
1593
+ background: var(--salt-taggable-background-active);
1594
+ color: white;
1595
+ border-radius: 4px;
1596
+ font-size: 11px;
1597
+ gap: 4px;
1598
+ height: 16px;
1599
+ display: flex;
1600
+ margin: var(--vuuColumnHeaderPill-margin, 0);
1601
+ padding: 0 6px;
1602
+ position: relative;
1603
+ }
1604
+ .vuuColumnHeaderPill:hover {
1605
+ --vuu-icon-color: var(--vuu-color-gray-80);
1606
+ background-color: var(--salt-taggable-background-hover);
1607
+ color: var(--vuu-color-gray-80);
1608
+ }
1609
+ .vuuColumnHeaderPill-removeButton {
1610
+ cursor: pointer;
1611
+ }
1612
+
1613
+ /* ../vuu-table/src/table-next/column-header-pill/GroupColumnPill.css */
1614
+ .vuuSortPosition {
1615
+ font-size: 11px;
1616
+ font-weight: 700;
1617
+ padding-top: 1px;
1618
+ }
1619
+
1620
+ /* ../vuu-table/src/table-next/column-header-pill/SortIndicator.css */
1621
+ .vuuSortPosition {
1622
+ font-size: 11px;
1623
+ font-weight: 700;
1624
+ padding-top: 1px;
1625
+ }
1626
+
1627
+ /* ../vuu-table/src/table-next/header-cell/GroupHeaderCell.css */
1628
+ .vuu-theme {
1629
+ --svg-spinner: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path fill="rgb(38, 112, 169)" d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"><animateTransform attributeName="transform" attributeType="XML" type="rotate" dur="1s" from="0 50 50" to="360 50 50" repeatCount="indefinite" /></path></svg>');
1630
+ }
1631
+ .vuuTableNextGroupHeaderCell.vuuTableNextHeaderCell {
1632
+ --vuuColumnHeaderPill-margin: 0;
1633
+ --cell-align: "flex-start";
1634
+ text-align: left;
1635
+ background: var(--dataTable-background);
1636
+ cursor: default;
1637
+ height: var(--vuuTableHeaderHeight);
1638
+ }
1639
+ .vuuTableNextGroupHeaderCell-inner {
1640
+ align-items: center;
1641
+ display: flex;
1642
+ gap: 4px;
1643
+ height: 100%;
1644
+ padding-left: 1px;
1645
+ }
1646
+ .vuuTableNextGroupHeaderCell-col {
1647
+ align-items: center;
1648
+ background-color: inherit;
1649
+ display: inline-flex;
1650
+ flex: 0 1 auto;
1651
+ height: calc(var(--vuuTableHeaderHeight) - 2px);
1652
+ justify-content: space-between;
1653
+ padding-right: 8px;
1654
+ position: relative;
1655
+ }
1656
+ .vuuTableNextGroupHeaderCell-label {
1657
+ align-items: center;
1658
+ display: flex;
1659
+ flex: 0 0 auto;
1660
+ }
1661
+ .vuuTableNextGroupHeaderCell-close {
1662
+ --vuu-icon-height: 18px;
1663
+ --vuu-icon-width: 18px;
1664
+ cursor: pointer;
1665
+ left: 3px;
1666
+ }
1667
+ .vuuTableNextGroupHeaderCell-resizing {
1668
+ --columnResizer-color: var(--salt-color-blue-500);
1669
+ --columnResizer-height: var(--table-height);
1670
+ --columnResizer-width: 2px;
1671
+ }
1672
+ .vuuTableNextGroupHeaderCell-pending {
1673
+ --pending-content: "";
1674
+ }
1675
+ .vuuTableNextGroupHeaderCell-col:has(+ .vuuColumnResizer):after {
1676
+ content: var(--pending-content);
1677
+ width: 24px;
1678
+ height: 24px;
1679
+ background-image: var(--svg-spinner);
1680
+ background-repeat: no-repeat;
1681
+ background-size: cover;
1682
+ }
1683
+
1684
+ /* ../vuu-table/src/table-next/column-menu/ColumnMenu.css */
1685
+ .vuuMenuItem {
1686
+ --vuu-svg-cog: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M12.9533 8.65331C12.98 8.43998 13 8.22665 13 7.99998C13 7.77331 12.98 7.55998 12.9533 7.34665L14.36 6.24665C14.4867 6.14665 14.52 5.96665 14.44 5.81998L13.1067 3.51331C13.0267 3.36665 12.8467 3.31331 12.7 3.36665L11.04 4.03331C10.6933 3.76665 10.32 3.54665 9.91333 3.37998L9.66 1.61331C9.64 1.45331 9.5 1.33331 9.33333 1.33331H6.66667C6.5 1.33331 6.36 1.45331 6.34 1.61331L6.08667 3.37998C5.68 3.54665 5.30667 3.77331 4.96 4.03331L3.3 3.36665C3.14667 3.30665 2.97333 3.36665 2.89333 3.51331L1.56 5.81998C1.47333 5.96665 1.51333 6.14665 1.64 6.24665L3.04667 7.34665C3.02 7.55998 3 7.77998 3 7.99998C3 8.21998 3.02 8.43998 3.04667 8.65331L1.64 9.75331C1.51333 9.85331 1.48 10.0333 1.56 10.18L2.89333 12.4866C2.97333 12.6333 3.15333 12.6866 3.3 12.6333L4.96 11.9666C5.30667 12.2333 5.68 12.4533 6.08667 12.62L6.34 14.3866C6.36 14.5466 6.5 14.6666 6.66667 14.6666H9.33333C9.5 14.6666 9.64 14.5466 9.66 14.3866L9.91333 12.62C10.32 12.4533 10.6933 12.2266 11.04 11.9666L12.7 12.6333C12.8533 12.6933 13.0267 12.6333 13.1067 12.4866L14.44 10.18C14.52 10.0333 14.4867 9.85331 14.36 9.75331L12.9533 8.65331V8.65331ZM8 10.3333C6.71333 10.3333 5.66667 9.28665 5.66667 7.99998C5.66667 6.71331 6.71333 5.66665 8 5.66665C9.28667 5.66665 10.3333 6.71331 10.3333 7.99998C10.3333 9.28665 9.28667 10.3333 8 10.3333Z"/></svg>');
1687
+ }
1688
+ .vuuTable-columnMenu {
1689
+ --vuu-icon-color: #606477;
1690
+ --vuu-icon-height: 20px;
1691
+ --vuu-icon-left: 0px;
1692
+ --vuu-icon-size: 16px;
1693
+ --vuu-icon-top: 0px;
1694
+ --vuu-icon-width: 20px;
1695
+ border-radius: 4px;
1696
+ cursor: pointer;
1697
+ display: inline-block;
1698
+ padding: 2px;
1699
+ left: var(--column-menu-left, 0);
1700
+ margin: var(--vuuTable-columnMenu-margin, 0);
1701
+ }
1702
+ .vuuTable-columnMenu:hover {
1703
+ --vuu-icon-color: #15171B;
1704
+ background-color: #F37880;
1705
+ }
1706
+ .vuuTable-columnMenu-open:hover,
1707
+ .vuuTable-columnMenu-open {
1708
+ background-color: #6D18BD;
1709
+ --vuu-icon-color: white;
1710
+ }
1711
+ [data-icon=cog] {
1712
+ --vuu-icon-svg: var(--vuu-svg-cog);
1713
+ --vuu-icon-size: 14px;
1714
+ }
1715
+ .vuuColumnMenuList {
1716
+ --vuuMenuList-borderStyle: solid;
1717
+ border-radius: 4px;
1718
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
1719
+ border-color: var(--vuuMenuList-borderColor, var(--salt-container-primary-borderColor));
1720
+ border-style: solid;
1721
+ border-width: 1px;
1722
+ }
1723
+
1724
+ /* ../vuu-table/src/table-next/header-cell/HeaderCell.css */
1725
+ .vuuTableNextHeaderCell {
1726
+ --cell-align: "flex-start";
1727
+ --vuuColumnHeaderPill-margin: 0 0 0 3px;
1728
+ align-items: center;
1729
+ background-color: var(--vuuTableNextHeaderCell-background, inherit);
1730
+ border-bottom: 1px solid #ccc;
1731
+ border-right-color: var(--cell-borderColor);
1732
+ border-right-style: solid;
1733
+ border-right-width: 1px;
1734
+ box-sizing: border-box;
1735
+ cursor: default;
1736
+ display: inline-flex;
1737
+ height: var(--header-height);
1738
+ vertical-align: top;
1739
+ }
1740
+ .vuuTableNextHeaderCell-right {
1741
+ --columnResizer-left: 0;
1742
+ --vuuTable-columnMenu-margin: 0;
1743
+ --vuuColumnHeaderPill-margin: 0 3px 0 0;
1744
+ --column-menu-left: 2px;
1745
+ justify-content: flex-end;
1746
+ }
1747
+ .vuuTableNextHeaderCell .vuuColumnResizerNext:hover {
1748
+ --columnResizer-color: var(--vuu-color-purple-10);
1749
+ }
1750
+ .vuuTableNextHeaderCell-label {
1751
+ line-height: calc(var(--header-height) - 1px);
1752
+ }
1753
+ .vuuTableNextHeaderCell-resizing {
1754
+ --columnResizer-height: var(--table-height);
1755
+ }
1756
+ .vuuTableNextHeaderCell.vuuPinLeft {
1757
+ padding-left: 2px;
1758
+ }
1759
+ .vuuTableNextHeaderCell.vuuPinLeft.vuuEndPin .vuuColumnResizerNext:before {
1760
+ --height: calc(var(--table-height) - 15px);
1761
+ --inset-r: calc(var(--pin-width) - 2px);
1762
+ --inset-b: calc(var(--height) - 2px);
1763
+ --clip-path: polygon( 0% 0%, 0% 120%, 2px 120%, 2px 2px, var(--inset-r) 2px, var(--inset-r) var(--inset-b), 2px var(--inset-b), 2px 120%, 120% 120%, 120% 0% );
1764
+ background-color: transparent;
1765
+ border-color: var(--vuu-color-gray-40);
1766
+ border-width: 1px;
1767
+ border-style: solid solid solid solid;
1768
+ border-radius: 4px;
1769
+ box-shadow: 2px 1px 4px 0px rgba(0, 0, 0, 0.10);
1770
+ clip-path: var(--clip-path);
1771
+ content: "";
1772
+ position: absolute;
1773
+ width: var(--pin-width);
1774
+ top: 0;
1775
+ bottom: 0;
1776
+ right: -1px;
1777
+ height: var(--height);
1778
+ z-index: -5;
1779
+ }
1780
+ .vuuTableNextHeaderCell.vuuPinRight.vuuEndPin .vuuColumnResizerNext:before {
1781
+ --height: calc(var(--table-height) - 15px);
1782
+ --inset-r: calc(var(--pin-width) - 2px);
1783
+ --inset-b: calc(var(--height) - 2px);
1784
+ --clip-path: polygon( -20% 0%, -20% 120%, 2px 120%, 2px 2px, var(--inset-r) 2px, var(--inset-r) var(--inset-b), 2px var(--inset-b), 2px 120%, 120% 120%, 120% 0% );
1785
+ background-color: transparent;
1786
+ border-color: #A9AAAD;
1787
+ border-width: 1px;
1788
+ border-style: solid solid solid solid;
1789
+ border-radius: 4px;
1790
+ box-shadow: -2px 1px 4px 0px rgba(0, 0, 0, 0.10);
1791
+ clip-path: var(--clip-path);
1792
+ content: "";
1793
+ position: absolute;
1794
+ width: var(--pin-width);
1795
+ top: 0;
1796
+ bottom: 0;
1797
+ right: 0px;
1798
+ height: var(--height);
1799
+ z-index: -5;
1800
+ }
1801
+ .vuuTableNextHeaderCell.vuuDraggable-dragAway {
1802
+ display: none;
1803
+ }
1804
+
1805
+ /* ../vuu-table/src/table-next/table-cell/TableCell.css */
1806
+ .vuuTableNextCell {
1807
+ border-right-color: var(--cell-borderColor);
1808
+ border-right-style: solid;
1809
+ border-right-width: 1px;
1810
+ display: inline-block;
1811
+ height: 100%;
1812
+ overflow: hidden;
1813
+ padding: 0 8px;
1814
+ text-overflow: ellipsis;
1815
+ vertical-align: top;
1816
+ }
1817
+ .vuuTableNextCell-right {
1818
+ text-align: right;
1819
+ }
1820
+ .vuuTableNextCell-editable {
1821
+ display: inline-flex;
1822
+ line-height: 18px;
1823
+ padding-bottom: 1px;
1824
+ padding-top: 1px;
1825
+ text-overflow: unset;
1826
+ }
1827
+ .vuuTableNextCell:focus {
1828
+ outline: var(--vuuTableCell-outline, solid var(--vuu-color-purple-10) 2px);
1829
+ outline-offset: -2px;
1830
+ box-shadow: inset 0 0 0 var(--cell-outline-width) white;
1831
+ border-bottom: none;
1832
+ }
1833
+ .vuuTableNextRow-selected .vuuTableNextCell:not(.vuuTableNextCell-editable):focus {
1834
+ outline: var(--vuuTableCell-outline, solid var(--vuu-color-purple-10) 2px);
1835
+ outline-offset: -1px;
1836
+ }
1837
+ .vuuTableNextCell-editable:focus {
1838
+ outline: none;
1839
+ }
1840
+
1841
+ /* ../vuu-table/src/table-next/table-cell/TableGroupCell.css */
1842
+ .vuuTableNextGroupCell {
1843
+ --group-cell-spacer-width: 20px;
1844
+ align-items: center;
1845
+ border-right-color: var(--vuuTableNextGroupCell-borderColor, var(--salt-separable-tertiary-borderColor));
1846
+ border-right-style: solid;
1847
+ border-right-width: 1px;
1848
+ cursor: pointer;
1849
+ display: inline-flex;
1850
+ height: var(--row-height);
1851
+ line-height: 16px;
1852
+ }
1853
+ .vuuTableNextGroupCell-toggle {
1854
+ --vuu-icon-height: 16px;
1855
+ --vuu-icon-size: 16px;
1856
+ --vuu-icon-width: 8px;
1857
+ margin-right: 4px;
1858
+ transition: transform 0.25s;
1859
+ transform: var(--toggle-icon-transform);
1860
+ }
1861
+ .vuuTableNextGroupCell-spacer {
1862
+ width: var(--group-cell-spacer-width);
1863
+ }
1864
+
1865
+ /* ../vuu-table/src/table-next/Row.css */
1866
+ .vuuTableNextRow {
1867
+ background: var(--row-background,#fff);
1868
+ border-bottom: 1px solid var(--row-borderColor);
1869
+ box-sizing: border-box;
1870
+ height: var(--row-height);
1871
+ line-height: calc(var(--row-height) - 1px);
1872
+ position: absolute;
1873
+ top: 0;
1874
+ white-space: nowrap;
1875
+ }
1876
+ .vuuTableNextRow-even {
1877
+ --row-background: var(--row-background-even);
1878
+ }
1879
+ .vuuTableNextRow-selected,
1880
+ .vuuTableNextRow-selectedEnd {
1881
+ background-color: rgb(235, 235, 236);
1882
+ }
1883
+ .vuuTableNextRow-selectedStart {
1884
+ --vuu-selection-decorator-left-radius: 5px 0 0 0;
1885
+ --vuu-selection-decorator-right-radius: 0 5px 0 0;
1886
+ border-radius: 5px 5px 0 0;
1887
+ }
1888
+ .vuuTableNextRow-selectedEnd {
1889
+ --vuu-selection-decorator-left-radius: 0 0 0 5px;
1890
+ --vuu-selection-decorator-right-radius: 0 0 5px 0;
1891
+ border-radius: 0 0 5px 5px;
1892
+ }
1893
+ .vuuTableNextRow-selectedStart.vuuTableNextRow-selectedEnd {
1894
+ --vuu-selection-decorator-left-radius: 5px 0 0 5px;
1895
+ --vuu-selection-decorator-right-radius: 0 5px 5px 0;
1896
+ border-radius: 5px 5px 5px 5px;
1897
+ }
1898
+ .vuuTableNextRow-selectedStart:after {
1899
+ content: "";
1900
+ position: absolute;
1901
+ top: 0;
1902
+ left: 4px;
1903
+ height: 1px;
1904
+ background-color: var(--vuu-color-purple-10);
1905
+ width: calc(var(--content-width) - 8px);
1906
+ z-index: 1;
1907
+ }
1908
+ .vuuTableNextRow-selectedEnd {
1909
+ border-bottom-color: var(--vuu-color-purple-10);
1910
+ }
1911
+ .vuuTableNextRow-selectionDecorator {
1912
+ background-color: var(--vuu-selection-decorator-bg, inherit);
1913
+ display: inline-block;
1914
+ position: relative;
1915
+ height: var(--row-height);
1916
+ width: 4px;
1917
+ z-index: 2;
1918
+ }
1919
+ .vuuTableNextRow-selectionDecorator.vuuStickyLeft {
1920
+ left: 0;
1921
+ position: sticky;
1922
+ }
1923
+ .vuuTableNextRow-selectionDecorator.vuuStickyRight {
1924
+ right: 0;
1925
+ position: sticky;
1926
+ }
1927
+ .vuuTableNextRow-selected {
1928
+ --vuu-selection-decorator-bg: var(--vuu-color-purple-10);
1929
+ }
1930
+ .vuuTableNextRow-selectedStart {
1931
+ --vuu-selection-decorator-bg: white;
1932
+ }
1933
+ .vuuTableNextRow-selectedEnd {
1934
+ --vuu-selection-decorator-bg: white;
1935
+ }
1936
+ .vuuTableNextRow-selectedStart.vuuTableNextRow-selectedEnd {
1937
+ }
1938
+ .vuuTableNextRow-selectedStart .vuuTableNextRow-selectionDecorator:before,
1939
+ .vuuTableNextRow-selectedEnd .vuuTableNextRow-selectionDecorator:before {
1940
+ content: "";
1941
+ inset: 0;
1942
+ position: absolute;
1943
+ background-color: var(--vuu-color-purple-10);
1944
+ }
1945
+ .vuuTableNextRow-selectionDecorator.vuuStickyLeft:before {
1946
+ border-radius: var(--vuu-selection-decorator-left-radius, 0);
1947
+ }
1948
+ .vuuTableNextRow-selectionDecorator.vuuStickyRight:before {
1949
+ border-radius: var(--vuu-selection-decorator-right-radius, 0);
1950
+ }
1951
+ .vuuTableNextRow-expanded {
1952
+ --toggle-icon-transform: rotate(90deg);
1953
+ }
1954
+
1955
+ /* ../vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css */
1956
+ .vuuTable td:has(> .vuuBackgroundCellDeprecated) {
1957
+ padding: 0;
1958
+ text-align: right;
1959
+ }
1960
+ .vuuBackgroundCellDeprecated {
1961
+ padding-right: var(--salt-size-unit);
1962
+ position: relative;
1963
+ z-index: -1;
1964
+ }
1965
+ .vuuBackgroundCellDeprecated-flasher {
1966
+ color: transparent;
1967
+ position: absolute;
1968
+ left: 0;
1969
+ right: 0;
1970
+ top: 0;
1971
+ bottom: 0;
1972
+ z-index: -1;
1973
+ }
1974
+ .vuuBackgroundCellDeprecated-flasher {
1975
+ text-align: left;
1976
+ }
1977
+ .vuuBackgroundCellDeprecated-flasher + .num {
1978
+ padding-left: 8px;
1979
+ }
1980
+ .right .vuuBackgroundCellDeprecated-flasher {
1981
+ text-align: right;
1982
+ }
1983
+ .right .vuuBackgroundCellDeprecated-flasher + .num {
1984
+ padding-right: 8px;
1985
+ }
1986
+ .up1 > .vuuBackgroundCellDeprecated-flasher {
1987
+ animation-duration: 30s;
1988
+ animation-name: reactbgup1;
1989
+ }
1990
+ .up2 > .vuuBackgroundCellDeprecated-flasher {
1991
+ animation-duration: 30s;
1992
+ animation-name: reactbgup2;
1993
+ }
1994
+ .down1 > .vuuBackgroundCellDeprecated-flasher {
1995
+ animation-duration: 30s;
1996
+ animation-name: reactbgdown1;
1997
+ }
1998
+ .down2 > .vuuBackgroundCellDeprecated-flasher {
1999
+ animation-duration: 30s;
2000
+ animation-name: reactbgdown2;
2001
+ }
2002
+ .up1.vuuBackgroundCellDeprecated-arrowOnly > .vuuBackgroundCellDeprecated-flasher {
2003
+ animation-duration: 30s;
2004
+ animation-name: reactarrowup1;
2005
+ }
2006
+ .up2.vuuBackgroundCellDeprecated-arrowOnly > .vuuBackgroundCellDeprecated-flasher {
2007
+ animation-duration: 30s;
2008
+ animation-name: reactarrowup2;
2009
+ }
2010
+ .down1.vuuBackgroundCellDeprecated-arrowOnly > .vuuBackgroundCellDeprecated-flasher {
2011
+ animation-duration: 30s;
2012
+ animation-name: reactarrowdown1;
2013
+ }
2014
+ .down2.vuuBackgroundCellDeprecated-arrowOnly > .vuuBackgroundCellDeprecated-flasher {
2015
+ animation-duration: 30s;
2016
+ animation-name: reactarrowdown2;
2017
+ }
2018
+ .up1.vuuBackgroundCellDeprecated-arrowBackground > .vuuBackgroundCellDeprecated-flasher {
2019
+ animation-duration: 30s;
2020
+ animation-name: reactbgarrowup1;
2021
+ }
2022
+ .up2.vuuBackgroundCellDeprecated-arrowBackground > .vuuBackgroundCellDeprecated-flasher {
2023
+ animation-duration: 30s;
2024
+ animation-name: reactbgarrowup2;
2025
+ }
2026
+ .down1.vuuBackgroundCellDeprecated-arrowBackground > .vuuBackgroundCellDeprecated-flasher {
2027
+ animation-duration: 30s;
2028
+ animation-name: reactbgarrowdown1;
2029
+ }
2030
+ .down2.vuuBackgroundCellDeprecated-arrowBackground > .vuuBackgroundCellDeprecated-flasher {
2031
+ animation-duration: 30s;
2032
+ animation-name: reactbgarrowdown2;
2033
+ }
2034
+
2035
+ /* ../vuu-table-extras/src/cell-renderers/background-cell/FlashingBackground.css */
2036
+ @keyframes reactbgup1 {
2037
+ from {
2038
+ background-color: green;
2039
+ }
2040
+ to {
2041
+ background-color: transparent;
2042
+ }
2043
+ }
2044
+ @keyframes reactbgup2 {
2045
+ from {
2046
+ background-color: green;
2047
+ }
2048
+ to {
2049
+ background-color: transparent;
2050
+ }
2051
+ }
2052
+ @keyframes reactbgdown1 {
2053
+ from {
2054
+ background-color: red;
2055
+ }
2056
+ to {
2057
+ background-color: transparent;
2058
+ }
2059
+ }
2060
+ @keyframes reactbgdown2 {
2061
+ from {
2062
+ background-color: red;
2063
+ }
2064
+ to {
2065
+ background-color: transparent;
2066
+ }
2067
+ }
2068
+ @keyframes reactarrowup1 {
2069
+ from {
2070
+ color: white;
2071
+ }
2072
+ to {
2073
+ color: transparent;
2074
+ }
2075
+ }
2076
+ @keyframes reactarrowup2 {
2077
+ from {
2078
+ color: white;
2079
+ }
2080
+ to {
2081
+ color: transparent;
2082
+ }
2083
+ }
2084
+ @keyframes reactarrowdown1 {
2085
+ from {
2086
+ color: white;
2087
+ }
2088
+ to {
2089
+ color: transparent;
2090
+ }
2091
+ }
2092
+ @keyframes reactarrowdown2 {
2093
+ from {
2094
+ color: white;
2095
+ }
2096
+ to {
2097
+ color: transparent;
2098
+ }
2099
+ }
2100
+ @keyframes reactbgarrowup1 {
2101
+ 0% {
2102
+ color: green;
2103
+ background-color: green;
2104
+ }
2105
+ 20% {
2106
+ color: green;
2107
+ background-color: transparent;
2108
+ }
2109
+ 100% {
2110
+ color: transparent;
2111
+ background-color: transparent;
2112
+ }
2113
+ }
2114
+ @keyframes reactbgarrowup2 {
2115
+ 0% {
2116
+ color: green;
2117
+ background-color: green;
2118
+ }
2119
+ 20% {
2120
+ color: green;
2121
+ background-color: transparent;
2122
+ }
2123
+ 100% {
2124
+ color: transparent;
2125
+ background-color: transparent;
2126
+ }
2127
+ }
2128
+ @keyframes reactbgarrowdown1 {
2129
+ 0% {
2130
+ color: red;
2131
+ background-color: red;
2132
+ }
2133
+ 20% {
2134
+ color: red;
2135
+ background-color: transparent;
2136
+ }
2137
+ 100% {
2138
+ color: transparent;
2139
+ background-color: transparent;
2140
+ }
2141
+ }
2142
+ @keyframes reactbgarrowdown2 {
2143
+ 0% {
2144
+ color: red;
2145
+ background-color: red;
2146
+ }
2147
+ 20% {
2148
+ color: red;
2149
+ background-color: transparent;
2150
+ }
2151
+ 100% {
2152
+ color: transparent;
2153
+ background-color: transparent;
2154
+ }
2155
+ }
2156
+
2157
+ /* ../vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css */
2158
+ .vuuProgressCell {
2159
+ align-items: center;
2160
+ display: flex;
2161
+ }
2162
+ .vuuProgressCell-track {
2163
+ display: inline-block;
2164
+ flex: auto 1 1;
2165
+ height: 4px;
2166
+ overflow: hidden;
2167
+ position: relative;
2168
+ }
2169
+ .vuuProgressCell-bg {
2170
+ background-color: var(--salt-measured-background);
2171
+ display: inline-block;
2172
+ height: 2px;
2173
+ left: 0;
2174
+ position: absolute;
2175
+ top: 1px;
2176
+ width: 100%;
2177
+ }
2178
+ .vuuProgressCell-bar {
2179
+ background-color: var(--salt-measured-fill);
2180
+ display: inline-block;
2181
+ height: 100%;
2182
+ left: 0;
2183
+ position: absolute;
2184
+ top: 0;
2185
+ transform: translateX(var(--progress-bar-pct, -100%));
2186
+ width: 100%;
2187
+ }
2188
+ .vuuProgressCell-text {
2189
+ flex: 35px 0 0;
2190
+ text-align: right;
2191
+ }
2192
+
2193
+ /* ../vuu-table-extras/src/cell-renderers-next/background-cell/BackgroundCell.css */
2194
+ .vuuTableNext td:has(> .vuuBackgroundCell) {
2195
+ padding: 0;
2196
+ text-align: right;
2197
+ }
2198
+ .vuuBackgroundCell {
2199
+ color: var(--background-cell-color);
2200
+ padding-right: var(--salt-size-unit);
2201
+ position: relative;
2202
+ z-index: -1;
2203
+ }
2204
+ .vuuBackgroundCell-flasher {
2205
+ background-color: var(--background-cell-background);
2206
+ position: absolute;
2207
+ left: 0;
2208
+ right: 0;
2209
+ top: 0;
2210
+ bottom: 0;
2211
+ z-index: -1;
2212
+ }
2213
+ .vuuBackgroundCell-flasher {
2214
+ text-align: left;
2215
+ }
2216
+ .vuuBackgroundCell-flasher + .num {
2217
+ padding-left: 8px;
2218
+ }
2219
+ .right .vuuBackgroundCell-flasher {
2220
+ text-align: right;
2221
+ }
2222
+ .right .vuuBackgroundCell-flasher + .num {
2223
+ padding-right: 8px;
2224
+ }
2225
+ .vuuBackgroundCell.up1 {
2226
+ animation-duration: 30s;
2227
+ animation-name: reactbgup1;
2228
+ }
2229
+ .vuuBackgroundCell.up2 {
2230
+ animation-duration: 30s;
2231
+ animation-name: reactbgup2;
2232
+ }
2233
+ .vuuBackgroundCell.down1 {
2234
+ animation-duration: 30s;
2235
+ animation-name: reactbgdown1;
2236
+ }
2237
+ .vuuBackgroundCell.down2 {
2238
+ animation-duration: 30s;
2239
+ animation-name: reactbgdown2;
2240
+ }
2241
+ .up1.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {
2242
+ animation-duration: 30s;
2243
+ animation-name: reactarrowup1;
2244
+ }
2245
+ .up2.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {
2246
+ animation-duration: 30s;
2247
+ animation-name: reactarrowup2;
2248
+ }
2249
+ .down1.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {
2250
+ animation-duration: 30s;
2251
+ animation-name: reactarrowdown1;
2252
+ }
2253
+ .down2.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {
2254
+ animation-duration: 30s;
2255
+ animation-name: reactarrowdown2;
2256
+ }
2257
+ .up1.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {
2258
+ animation-duration: 30s;
2259
+ animation-name: reactbgarrowup1;
2260
+ }
2261
+ .up2.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {
2262
+ animation-duration: 30s;
2263
+ animation-name: reactbgarrowup2;
2264
+ }
2265
+ .down1.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {
2266
+ animation-duration: 30s;
2267
+ animation-name: reactbgarrowdown1;
2268
+ }
2269
+ .down2.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {
2270
+ animation-duration: 30s;
2271
+ animation-name: reactbgarrowdown2;
2272
+ }
2273
+
2274
+ /* ../vuu-table-extras/src/cell-renderers-next/background-cell/FlashingBackground.css */
2275
+ @property --background-cell-background { syntax: "<color>"; initial-value: transparent; inherits: false; }
2276
+ @property --background-cell-color { syntax: "<color>"; initial-value: #15171B; inherits: false; }
2277
+ @keyframes reactbgup1 {
2278
+ from {
2279
+ --background-cell-background: var(--vuu-color-green-50);
2280
+ --background-cell-color: white;
2281
+ }
2282
+ to {
2283
+ --background-cell-background: transparent;
2284
+ --background-cell-color: var(--vuu-color-gray-80);
2285
+ }
2286
+ }
2287
+ @keyframes reactbgup2 {
2288
+ from {
2289
+ --background-cell-background: var(--vuu-color-green-50);
2290
+ --background-cell-color: #ffffff;
2291
+ }
2292
+ to {
2293
+ --background-cell-background: transparent;
2294
+ --background-cell-color: var(--vuu-color-gray-80);
2295
+ }
2296
+ }
2297
+ @keyframes reactbgdown1 {
2298
+ from {
2299
+ --background-cell-background: var(--vuu-color-red-50);
2300
+ --background-cell-color: white;
2301
+ }
2302
+ to {
2303
+ --background-cell-background: transparent;
2304
+ --background-cell-color: var(--vuu-color-gray-80);
2305
+ }
2306
+ }
2307
+ @keyframes reactbgdown2 {
2308
+ from {
2309
+ --background-cell-background: var(--vuu-color-red-50);
2310
+ --background-cell-color: white;
2311
+ }
2312
+ to {
2313
+ --background-cell-background: transparent;
2314
+ --background-cell-color: var(--vuu-color-gray-80);
2315
+ }
2316
+ }
2317
+ @keyframes reactarrowup1 {
2318
+ from {
2319
+ color: var(--salt-differential-positive-foreground);
2320
+ }
2321
+ to {
2322
+ color: transparent;
2323
+ }
2324
+ }
2325
+ @keyframes reactarrowup2 {
2326
+ from {
2327
+ color: var(--salt-differential-positive-foreground);
2328
+ }
2329
+ to {
2330
+ color: transparent;
2331
+ }
2332
+ }
2333
+ @keyframes reactarrowdown1 {
2334
+ from {
2335
+ color: var(--salt-differential-negative-foreground);
2336
+ }
2337
+ to {
2338
+ color: transparent;
2339
+ }
2340
+ }
2341
+ @keyframes reactarrowdown2 {
2342
+ from {
2343
+ color: var(--salt-differential-negative-foreground);
2344
+ }
2345
+ to {
2346
+ color: transparent;
2347
+ }
2348
+ }
2349
+ @keyframes reactbgarrowup1 {
2350
+ 0% {
2351
+ color: var(--salt-differential-positive-foreground);
2352
+ background-color: var(--vuu-color-green-50);
2353
+ }
2354
+ 20% {
2355
+ color: var(--salt-differential-positive-foreground);
2356
+ background-color: transparent;
2357
+ }
2358
+ 100% {
2359
+ color: transparent;
2360
+ background-color: transparent;
2361
+ }
2362
+ }
2363
+ @keyframes reactbgarrowup2 {
2364
+ 0% {
2365
+ color: var(--salt-differential-positive-foreground);
2366
+ background-color: var(--vuu-color-green-50);
2367
+ }
2368
+ 20% {
2369
+ color: var(--salt-differential-positive-foreground);
2370
+ background-color: transparent;
2371
+ }
2372
+ 100% {
2373
+ color: transparent;
2374
+ background-color: transparent;
2375
+ }
2376
+ }
2377
+ @keyframes reactbgarrowdown1 {
2378
+ 0% {
2379
+ color: var(--salt-differential-negative-foreground);
2380
+ background-color: var(--vuu-color-red-50);
2381
+ }
2382
+ 20% {
2383
+ color: var(--salt-differential-negative-foreground);
2384
+ background-color: transparent;
2385
+ }
2386
+ 100% {
2387
+ color: transparent;
2388
+ background-color: transparent;
2389
+ }
2390
+ }
2391
+ @keyframes reactbgarrowdown2 {
2392
+ 0% {
2393
+ color: var(--salt-differential-negative-foreground);
2394
+ background-color: var(--vuu-color-red-50);
2395
+ }
2396
+ 20% {
2397
+ color: var(--salt-differential-negative-foreground);
2398
+ background-color: transparent;
2399
+ }
2400
+ 100% {
2401
+ color: transparent;
2402
+ background-color: transparent;
2403
+ }
2404
+ }
2405
+
2406
+ /* ../vuu-table-extras/src/column-list/ColumnList.css */
2407
+ .vuuColumnList {
2408
+ --vuu-svg-function: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M5.8625 10.5V9.625H6.72291L8.4875 7.59792L6.72291 5.54167H5.64375L4.60833 10.8792C4.53055 11.3167 4.36527 11.6545 4.1125 11.8927C3.85972 12.1309 3.53402 12.25 3.13541 12.25C2.7368 12.25 2.40382 12.1333 2.13645 11.9C1.86909 11.6667 1.73541 11.375 1.73541 11.025C1.73541 10.7625 1.80833 10.551 1.95416 10.3906C2.1 10.2302 2.28958 10.15 2.52291 10.15C2.72708 10.15 2.89479 10.2083 3.02604 10.325C3.15729 10.4417 3.22291 10.5972 3.22291 10.7917C3.22291 10.8986 3.20104 10.9983 3.15729 11.0906C3.11354 11.183 3.05277 11.2583 2.975 11.3167C3.01388 11.3361 3.0552 11.3507 3.09895 11.3604C3.1427 11.3701 3.18888 11.375 3.2375 11.375C3.36388 11.375 3.47083 11.3142 3.55833 11.1927C3.64583 11.0712 3.70902 10.9132 3.74791 10.7188L4.75416 5.54167H2.91666V4.66667H4.91458L5.22083 3.12083C5.30833 2.68333 5.48333 2.34549 5.74583 2.10729C6.00833 1.8691 6.33402 1.75 6.72291 1.75C7.12152 1.75 7.44965 1.86667 7.70729 2.1C7.96493 2.33333 8.09375 2.625 8.09375 2.975C8.09375 3.2375 8.02083 3.44896 7.875 3.60938C7.72916 3.76979 7.53958 3.85 7.30625 3.85C7.1118 3.85 6.94652 3.7941 6.81041 3.68229C6.6743 3.57049 6.60625 3.42222 6.60625 3.2375C6.60625 3.14028 6.62569 3.04549 6.66458 2.95312C6.70347 2.86076 6.75208 2.78542 6.81041 2.72708C6.79097 2.70764 6.7618 2.69063 6.72291 2.67604C6.68402 2.66146 6.64513 2.65417 6.60625 2.65417C6.47986 2.65417 6.37048 2.7125 6.27812 2.82917C6.18576 2.94583 6.12013 3.09653 6.08125 3.28125L5.81875 4.66667H8.575V5.54167H7.88958L9.1 6.94167L10.2375 5.54167H9.5375V4.66667H12.25V5.54167H11.4042L9.65416 7.59792L11.4042 9.625H12.25V10.5H9.5375V9.625H10.2375L9.07083 8.26875L7.875 9.625H8.575V10.5H5.8625Z"/></svg>');
2409
+ --vuuList-borderStyle: none;
2410
+ --vuuListItem-padding: 0;
2411
+ display: flex;
2412
+ flex-direction: column;
2413
+ width: 252px;
2414
+ }
2415
+ [data-icon=function] {
2416
+ --vuu-icon-svg: var(--vuu-svg-function);
2417
+ }
2418
+ .vuuColumnListItem {
2419
+ border-bottom: solid 1px var(--salt-separable-tertiary-borderColor);
2420
+ padding: 0 6px 0 0;
2421
+ }
2422
+ .vuuColumnList-switch {
2423
+ flex: 0 0 32px;
2424
+ }
2425
+ .vuuColumnList-text {
2426
+ flex: 1 1 auto;
2427
+ }
2428
+ .vuuColumnList-checkBox {
2429
+ flex: 0 0 20px;
2430
+ }
2431
+ .vuuColumnList-icon {
2432
+ --vuu-icon-color: var(--vuu-color-gray-45);
2433
+ --vuu-icon-size: 16px;
2434
+ --vuu-icon-width: 32px;
2435
+ }
2436
+ .vuuColumnList-header {
2437
+ border-top: solid 2px var(--vuu-color-gray-30);
2438
+ flex: 0 0 40px;
2439
+ font-size: 14px;
2440
+ font-weight: 600;
2441
+ padding-top: 24px;
2442
+ }
2443
+ .vuuColumnList-colHeadings {
2444
+ border-bottom: solid 2px var(--vuu-color-gray-30);
2445
+ color: var(--vuu-color-gray-50);
2446
+ display: flex;
2447
+ flex: 0 0 24px;
2448
+ font-size: 10px;
2449
+ justify-content: space-between;
2450
+ margin-top: 16px;
2451
+ padding-bottom: 8px;
2452
+ }
2453
+
2454
+ /* ../vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css */
2455
+ .vuuColumnExpressionInput {
2456
+ --vuuFilterEditor-background: var(--salt-container-primary-background);
2457
+ --vuuFilterEditor-color: var(--salt-text-primary-foreground);
2458
+ --vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);
2459
+ --vuuFilterEditor-fontSize: var(--salt-text-fontSize);
2460
+ --vuuFilterEditor-cursorColor: var(--salt-text-secondary-foreground);
2461
+ --vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);
2462
+ --vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);
2463
+ --vuuFilterEditor-tooltipBorder: var(--tooltip-status-borderColor) var(--salt-container-borderWidth) var(--salt-container-borderStyle);
2464
+ --vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);
2465
+ --vuuFilterEditor-suggestion-selectedBackground: var(--salt-selectable-background-selected);
2466
+ --vuuFilterEditor-suggestion-selectedColor: var(--salt-text-primary-foreground);
2467
+ --vuuFilterEditor-suggestion-detailColor: var(--salt-text-secondary-foreground-disabled);
2468
+ --vuuFilterEditor-suggestion-height: 24px;
2469
+ --vuuFilterEditor-variableColor: blue;
2470
+ align-items: center;
2471
+ box-sizing: border-box;
2472
+ height: 30px;
2473
+ }
2474
+ .vuuColumnExpressionInput-FilterButton,
2475
+ .vuuColumnExpressionInput-ClearButton {
2476
+ --vuu-icon-size: 12px;
2477
+ --saltButton-width: 28px;
2478
+ }
2479
+ .expression-type-container {
2480
+ margin: 0 3px 0 auto;
2481
+ color: var(--salt-text-secondary-foreground);
2482
+ }
2483
+ .expression-kind {
2484
+ display: inline-block;
2485
+ width: 50px;
2486
+ }
2487
+ .expression-type {
2488
+ display: inline-block;
2489
+ text-align: right;
2490
+ width: 50px;
2491
+ }
2492
+ .vuuSuggestion {
2493
+ display: flex;
2494
+ align-items: center;
2495
+ }
2496
+ .vuuFunctionDoc .function-heading {
2497
+ display: flex;
2498
+ gap: 3px;
2499
+ }
2500
+ .vuuFunctionDoc .function-name {
2501
+ font-style: italic;
2502
+ }
2503
+ .vuuFunctionDoc .param-list {
2504
+ font-style: italic;
2505
+ color: blue;
2506
+ white-space: pre;
2507
+ }
2508
+ .vuuFunctionDoc .function-type {
2509
+ margin-left: auto;
2510
+ }
2511
+ .vuuFunctionDoc .example-container {
2512
+ background-color: var(--salt-container-secondary-background);
2513
+ margin: 6px 0;
2514
+ padding: 3px;
2515
+ }
2516
+ .vuuFunctionDoc .example-expression {
2517
+ font-family: var(--salt-typography-fontFamily-code);
2518
+ margin-left: 8px;
2519
+ margin-top: 6px;
2520
+ }
2521
+ .vuuFunctionDoc .example-result {
2522
+ margin-left: 8px;
2523
+ margin-top: 6px;
626
2524
  }
627
2525
 
628
- /* ../vuu-ui-controls/src/list/CheckboxIcon.css */
629
- .vuuCheckboxIcon {
630
- --vuu-icon-size: 14px;
631
- --vuu-icon-left: -1px;
632
- --vuu-icon-top: -1px;
633
- --vuu-icon-svg: var(--vuu-svg-tick);
634
- border-style: solid;
635
- border-color: var(--vuuCheckboxIcon-borderColor, var(--salt-selectable-borderColor));
636
- border-radius: var(--vuuCheckboxIcon-borderRadius, 3px);
637
- border-width: 1px;
638
- display: inline-block;
639
- height: var(--vuuCheckboxIcon-size, 14px);
640
- position: relative;
641
- width: var(--vuuCheckboxIcon-size, 14px);
2526
+ /* ../vuu-table-extras/src/column-settings/ColumnSettingsPanel.css */
2527
+ .vuuColumnSettingsPanel {
2528
+ --vuu-svg-align-left: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M9.33333 10H2.66667C2.3 10 2 10.3 2 10.6667C2 11.0333 2.3 11.3333 2.66667 11.3333H9.33333C9.7 11.3333 10 11.0333 10 10.6667C10 10.3 9.7 10 9.33333 10ZM9.33333 4.66667H2.66667C2.3 4.66667 2 4.96667 2 5.33333C2 5.7 2.3 6 2.66667 6H9.33333C9.7 6 10 5.7 10 5.33333C10 4.96667 9.7 4.66667 9.33333 4.66667ZM2.66667 8.66667H13.3333C13.7 8.66667 14 8.36667 14 8C14 7.63333 13.7 7.33333 13.3333 7.33333H2.66667C2.3 7.33333 2 7.63333 2 8C2 8.36667 2.3 8.66667 2.66667 8.66667ZM2.66667 14H13.3333C13.7 14 14 13.7 14 13.3333C14 12.9667 13.7 12.6667 13.3333 12.6667H2.66667C2.3 12.6667 2 12.9667 2 13.3333C2 13.7 2.3 14 2.66667 14ZM2 2.66667C2 3.03333 2.3 3.33333 2.66667 3.33333H13.3333C13.7 3.33333 14 3.03333 14 2.66667C14 2.3 13.7 2 13.3333 2H2.66667C2.3 2 2 2.3 2 2.66667Z" /></svg>');
2529
+ --vuu-svg-align-right: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2.66667 14H13.3333C13.7 14 14 13.7 14 13.3333C14 12.9667 13.7 12.6667 13.3333 12.6667H2.66667C2.3 12.6667 2 12.9667 2 13.3333C2 13.7 2.3 14 2.66667 14ZM6.66667 11.3333H13.3333C13.7 11.3333 14 11.0333 14 10.6667C14 10.3 13.7 10 13.3333 10H6.66667C6.3 10 6 10.3 6 10.6667C6 11.0333 6.3 11.3333 6.66667 11.3333ZM2.66667 8.66667H13.3333C13.7 8.66667 14 8.36667 14 8C14 7.63333 13.7 7.33333 13.3333 7.33333H2.66667C2.3 7.33333 2 7.63333 2 8C2 8.36667 2.3 8.66667 2.66667 8.66667ZM6.66667 6H13.3333C13.7 6 14 5.7 14 5.33333C14 4.96667 13.7 4.66667 13.3333 4.66667H6.66667C6.3 4.66667 6 4.96667 6 5.33333C6 5.7 6.3 6 6.66667 6ZM2 2.66667C2 3.03333 2.3 3.33333 2.66667 3.33333H13.3333C13.7 3.33333 14 3.03333 14 2.66667C14 2.3 13.7 2 13.3333 2H2.66667C2.3 2 2 2.3 2 2.66667Z" /></svg>');
2530
+ --vuu-svg-pin-left: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M7.33333 9.86V8.66666H13.3333C13.7 8.66666 14 8.36666 14 8C14 7.63333 13.7 7.33333 13.3333 7.33333L7.33333 7.33333V6.14C7.33333 5.84 6.97333 5.69333 6.76667 5.90666L4.90667 7.76666C4.77333 7.89999 4.77333 8.10666 4.90667 8.24L6.76667 10.1C6.97333 10.3067 7.33333 10.16 7.33333 9.86ZM2.66667 13.3333C3.03333 13.3333 3.33333 13.0333 3.33333 12.6667L3.33333 3.33333C3.33333 2.96666 3.03333 2.66666 2.66667 2.66666C2.3 2.66666 2 2.96666 2 3.33333L2 12.6667C2 13.0333 2.3 13.3333 2.66667 13.3333Z" /></svg>');
2531
+ --vuu-svg-pin-float: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M6 4.66667H4.66667V6H6V4.66667ZM6 7.33333H4.66667V8.66667H6V7.33333ZM6 2C5.26 2 4.66667 2.6 4.66667 3.33333H6V2ZM8.66667 10H7.33333V11.3333H8.66667V10ZM12.6667 2V3.33333H14C14 2.6 13.4 2 12.6667 2ZM8.66667 2H7.33333V3.33333H8.66667V2ZM6 11.3333V10H4.66667C4.66667 10.7333 5.26 11.3333 6 11.3333ZM12.6667 8.66667H14V7.33333H12.6667V8.66667ZM12.6667 6H14V4.66667H12.6667V6ZM12.6667 11.3333C13.4 11.3333 14 10.7333 14 10H12.6667V11.3333ZM2.66667 4.66667C2.3 4.66667 2 4.96667 2 5.33333V12.6667C2 13.4 2.6 14 3.33333 14H10.6667C11.0333 14 11.3333 13.7 11.3333 13.3333C11.3333 12.9667 11.0333 12.6667 10.6667 12.6667H4C3.63333 12.6667 3.33333 12.3667 3.33333 12V5.33333C3.33333 4.96667 3.03333 4.66667 2.66667 4.66667ZM10 3.33333H11.3333V2H10V3.33333ZM10 11.3333H11.3333V10H10V11.3333Z" /></svg>');
2532
+ --vuu-svg-pin-right: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M8.66667 6.14V7.33333H2.66667C2.3 7.33333 2 7.63333 2 8C2 8.36666 2.3 8.66666 2.66667 8.66666H8.66667V9.86C8.66667 10.16 9.02667 10.3067 9.23333 10.0933L11.0933 8.23333C11.2267 8.1 11.2267 7.89333 11.0933 7.76L9.23333 5.9C9.02667 5.69333 8.66667 5.84 8.66667 6.14ZM13.3333 13.3333C13.7 13.3333 14 13.0333 14 12.6667V3.33333C14 2.96666 13.7 2.66666 13.3333 2.66666C12.9667 2.66666 12.6667 2.96666 12.6667 3.33333V12.6667C12.6667 13.0333 12.9667 13.3333 13.3333 13.3333Z"/></svg>');
2533
+ --vuuDropdown-height: 24px;
2534
+ --vuuDropdown-width: 100%;
2535
+ --vuuIconToggleButton-iconSize: 16px;
2536
+ display: flex;
2537
+ flex-direction: column;
2538
+ gap: 24px;
2539
+ height: 100%;
2540
+ padding-top: 24px;
642
2541
  }
643
- .vuuCheckboxIcon-checked {
644
- background-color: var(--vuuCheckboxIcon-background-checked, var(--salt-selectable-background-selected));
645
- border-color: var(--vuuCheckboxIcon-borderColor-checked, var(--salt-selectable-borderColor-selected));
2542
+ .vuuColumnSettingsPanel-header {
2543
+ border-top: solid 2px var(--vuu-color-gray-30);
2544
+ font-size: 14px;
2545
+ font-weight: 600;
2546
+ padding-top: 24px;
646
2547
  }
647
- .vuuCheckboxIcon-checked:after {
648
- content: "";
649
- background-color: white;
650
- left: var(--vuu-icon-left, auto);
651
- height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));
652
- -webkit-mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
653
- mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
654
- mask-repeat: no-repeat;
655
- -webkit-mask-repeat: no-repeat;
656
- position: absolute;
657
- top: var(--vuu-icon-top, auto);
658
- width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));
2548
+ .vuuColumnSettingsPanel-buttonBar {
2549
+ align-items: center;
2550
+ display: flex;
2551
+ justify-content: space-between;
2552
+ margin-top: auto;
659
2553
  }
660
-
661
- /* ../vuu-ui-controls/src/list/ListItem.css */
662
- .vuuListItem {
663
- --list-item-text-color: var(--salt-text-primary-foreground);
664
- --list-item-background: var(--vuuList-item-background, var(--salt-selectable-background));
665
- --list-item-text-color-active: var(--salt-text-primary-foreground);
666
- --list-item-background-active: var(--salt-selectable-background-selected);
667
- --list-item-alignItems: center;
2554
+ .vuuColumnSettingsPanel-buttonBar[data-align=right] {
2555
+ gap: 6px;
2556
+ justify-content: flex-end;
668
2557
  }
669
- .vuuListItem.saltHighlighted {
670
- --saltCheckbox-icon-stroke: var(--salt-selectable-borderColor-hover);
671
- --list-item-background: var(--salt-selectable-background-hover);
2558
+ .vuuColumnSettingsPanel-buttonNavPrev {
2559
+ --vuu-icon-left: 6px;
2560
+ padding-left: 24px;
672
2561
  }
673
- .vuuListItemHeader {
674
- font-weight: var(--salt-text-fontWeight-strong);
2562
+ .vuuColumnSettingsPanel-buttonNavNext {
2563
+ --vuu-icon-left: calc(100% - 18px);
2564
+ padding-right: 24px;
675
2565
  }
676
- .vuuListItemHeader[data-sticky] {
677
- position: sticky;
678
- top: 0;
679
- z-index: 1;
2566
+ [data-icon=align-left] {
2567
+ --vuu-icon-svg: var(--vuu-svg-align-left);
680
2568
  }
681
- .vuuListItem {
682
- color: var(--list-item-text-color);
683
- cursor: var(--vuuList-item-cursor, pointer);
684
- background: var(--vuuList-item-background, var(--list-item-background));
685
- font-size: var(--salt-text-fontSize);
686
- text-align: var(--salt-text-textAlign);
687
- line-height: var(--salt-text-lineHeight);
688
- height: var(--vuuList-item-height, var(--list-item-height, auto));
689
- margin-bottom: var(--list-item-gap);
690
- padding: 0 var(--salt-size-unit);
691
- left: 0;
692
- right: 0;
2569
+ [data-icon=align-right] {
2570
+ --vuu-icon-svg: var(--vuu-svg-align-right);
2571
+ }
2572
+ [data-icon=pin-left] {
2573
+ --vuu-icon-svg: var(--vuu-svg-pin-left);
2574
+ }
2575
+ [data-icon=pin-float] {
2576
+ --vuu-icon-svg: var(--vuu-svg-pin-float);
2577
+ }
2578
+ [data-icon=pin-right] {
2579
+ --vuu-icon-svg: var(--vuu-svg-pin-right);
2580
+ }
2581
+
2582
+ /* ../vuu-table-extras/src/datasource-stats/DatasourceStats.css */
2583
+ .vuuDatasourceStats {
2584
+ color: black;
693
2585
  display: flex;
694
- position: relative;
695
- align-items: var(--list-item-alignItems);
696
- white-space: nowrap;
2586
+ font-size: 10px;
2587
+ gap: var(--salt-size-unit);
2588
+ padding: 4px 0 0 12px;
697
2589
  }
698
- .vuuListItem:last-child {
699
- margin-bottom: 0px;
2590
+ .vuuDatasourceStats-label {
2591
+ color: var(--vuu-color-gray-50);
700
2592
  }
701
- .vuuListItem-checkbox {
702
- --list-item-background-active: var(--salt-selectable-background);
703
- --list-item-text-color-active: var(--salt-text-primary-foreground);
704
- --list-item-text-padding: 0 0 0 var(--salt-size-unit);
2593
+
2594
+ /* ../vuu-table-extras/src/table-settings/TableSettingsPanel.css */
2595
+ .vuuTableSettingsPanel {
2596
+ --vuu-svg-text-strikethrough: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 24"><path d="M28.3333 9.33334C28.8867 9.33334 29.3333 8.88668 29.3333 8.33334C29.3333 7.78001 28.8867 7.33334 28.3333 7.33334H20.26L22.26 9.33334H23.48L23.1133 10.1867L24.5067 11.58L25.4733 9.33334H28.3333ZM27.6267 16.5867L18.7467 7.70668C18.4867 7.44668 18.0667 7.44668 17.8067 7.70668C17.5467 7.96668 17.5467 8.38668 17.8067 8.64668L21.98 12.82L20.88 15.38C20.62 15.9933 21.0667 16.6667 21.7267 16.6667C22.0933 16.6667 22.4267 16.4467 22.5733 16.1067L23.38 14.22L26.68 17.52C26.94 17.78 27.36 17.78 27.62 17.52C27.8867 17.2667 27.8867 16.8467 27.6267 16.5867Z"/></svg>');
2597
+ --vuu-svg-text-Tt: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 24"><path d="M17.6667 7.66666C17.6667 8.21999 18.1133 8.66666 18.6667 8.66666H21V15.6667C21 16.22 21.4467 16.6667 22 16.6667C22.5533 16.6667 23 16.22 23 15.6667V8.66666H25.3333C25.8867 8.66666 26.3333 8.21999 26.3333 7.66666C26.3333 7.11332 25.8867 6.66666 25.3333 6.66666H18.6667C18.1133 6.66666 17.6667 7.11332 17.6667 7.66666ZM29.3333 9.99999H25.3333C24.78 9.99999 24.3333 10.4467 24.3333 11C24.3333 11.5533 24.78 12 25.3333 12H26.3333V15.6667C26.3333 16.22 26.78 16.6667 27.3333 16.6667C27.8867 16.6667 28.3333 16.22 28.3333 15.6667V12H29.3333C29.8867 12 30.3333 11.5533 30.3333 11C30.3333 10.4467 29.8867 9.99999 29.3333 9.99999Z" /></svg>');
2598
+ --vuu-svg-text-T: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 24"><path d="M19.3333 7.66666C19.3333 8.21999 19.78 8.66666 20.3333 8.66666H23V15.6667C23 16.22 23.4467 16.6667 24 16.6667C24.5533 16.6667 25 16.22 25 15.6667V8.66666H27.6667C28.22 8.66666 28.6667 8.21999 28.6667 7.66666C28.6667 7.11332 28.22 6.66666 27.6667 6.66666H20.3333C19.78 6.66666 19.3333 7.11332 19.3333 7.66666Z"/></svg>');
2599
+ --vuu-svg-stripes: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><rect x="2" y="2" width="12" height="2" rx="0.3"/><rect x="2" y="5" width="12" height="2" rx="0.3"/><rect x="2" y="8" width="12" height="2" rx="0.3"/><rect x="2" y="11" width="12" height="2" rx="0.3"/></svg>');
2600
+ --vuu-svg-row-lines: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><rect x="2" y="3" width="12" height="1" rx="0.3" /><rect x="2" y="6" width="12" height="1" rx="0.3" /><rect x="2" y="9" width="12" height="1" rx="0.3" /><rect x="2" y="12" width="12" height="1" rx="0.3"/></svg>');
2601
+ --vuu-svg-col-lines: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><rect x="3" y="14" width="12" height="1" rx="0.3" transform="rotate(-90 3 14)"/><rect x="6" y="14" width="12" height="1" rx="0.3" transform="rotate(-90 6 14)"/><rect x="9" y="14" width="12" height="1" rx="0.3" transform="rotate(-90 9 14)"/><rect x="12" y="14" width="12" height="1" rx="0.3" transform="rotate(-90 12 14)"/></svg>');
2602
+ display: flex;
2603
+ flex-direction: column;
2604
+ gap: 24px;
2605
+ height: 100%;
2606
+ padding-top: 24px;
705
2607
  }
706
- .vuuListItem[aria-selected=true]:not(.vuuListItem-checkbox) {
707
- --list-item-background: var(--list-item-background-active);
708
- color: var(--list-item-text-color-active);
2608
+ .vuuTableSettingsPanel [data-icon=text-strikethrough] {
2609
+ --vuu-icon-svg: var(--vuu-svg-text-strikethrough);
709
2610
  }
710
- .vuuListItem.saltDisabled {
711
- --list-item-text-color: var(--salt-text-primary-foreground-disabled);
712
- cursor: var(--salt-selectable-cursor-disabled);
2611
+ .vuuTableSettingsPanel [data-icon=text-Tt] {
2612
+ --vuu-icon-svg: var(--vuu-svg-text-Tt);
713
2613
  }
714
- .vuuListItem.vuuFocusVisible {
715
- outline-style: var(--salt-focused-outlineStyle);
716
- outline-width: var(--salt-focused-outlineWidth);
717
- outline-offset: -2px;
718
- outline-color: var(--salt-focused-outlineColor);
2614
+ .vuuTableSettingsPanel [data-icon=text-T] {
2615
+ --vuu-icon-svg: var(--vuu-svg-text-T);
719
2616
  }
720
- .vuuListItem.vuuFocusVisible:after {
721
- content: none;
2617
+ .vuuTableSettingsPanel [data-icon=col-lines] {
2618
+ --vuu-icon-svg: var(--vuu-svg-col-lines);
722
2619
  }
723
- .vuuListItem[aria-selected=true]:not(.vuuListItem-checkbox).vuuFocusVisible {
724
- outline-color: var(--list-item-selected-focus-outlineColor);
2620
+ .vuuTableSettingsPanel [data-icon=row-lines] {
2621
+ --vuu-icon-svg: var(--vuu-svg-row-lines);
725
2622
  }
726
- .vuuListItem-textWrapper {
727
- flex: 1;
728
- overflow: hidden;
729
- padding: var(--list-item-text-padding, 0px);
730
- white-space: nowrap;
731
- text-overflow: ellipsis;
2623
+ .vuuTableSettingsPanel [data-icon=row-striping] {
2624
+ --vuu-icon-svg: var(--vuu-svg-stripes);
732
2625
  }
733
- .vuuListItem-proxy {
734
- position: absolute !important;
735
- visibility: hidden;
2626
+ .vuuTableSettingsPanel-header {
2627
+ border-top: solid 2px var(--vuu-color-gray-30);
2628
+ font-size: 14px;
2629
+ font-weight: 600;
2630
+ padding-top: 24px;
736
2631
  }
737
- .vuuDraggable-list-item {
738
- --vuuList-item-height: 24px;
739
- background-color: white;
2632
+ .vuuTableSettingsPanel .vuuColumnList {
2633
+ flex-grow: 1;
2634
+ flex-shrink: 1;
2635
+ flex-basis: 0;
740
2636
  }
741
- .vuuListItem.vuuDraggable-dragAway {
742
- display: none;
2637
+ .vuuTableSettingsPanel-calculatedButtonbar {
2638
+ --vuu-icon-size: 16px;
2639
+ --saltButton-height: 24px;
2640
+ --saltButton-width: 24px;
2641
+ align-items: center;
2642
+ display: flex;
2643
+ flex: 0 0 32px;
2644
+ gap: 12px;
2645
+ }
2646
+ .vuuGridSeparators {
2647
+ --vuuIconToggleButton-iconSize: 16px;
743
2648
  }
744
2649
 
745
- /* ../vuu-ui-controls/src/list/List.css */
746
- .vuuList {
747
- --list-background: var(--salt-container-primary-background);
748
- --list-borderStyle: var(--vuuList-borderStyle,--salt-container-borderStyle);
749
- --list-borderWidth: var(--salt-size-border);
750
- --list-height: auto;
751
- --list-item-height: var(--salt-size-stackable);
752
- --list-item-gap: 0px;
753
- --list-maxHeight: 100%;
754
- --vuuDraggable-display: block;
755
- --vuuDraggable-spacer-height: 0;
756
- --vuuDraggable-spacer-width: 100%;
757
- --vuuDraggable-transitionProp: height;
758
- background: var(--list-background);
759
- border-color: var(--salt-container-primary-borderColor);
760
- border-style: var(--list-borderStyle);
761
- border-width: var(--list-borderWidth);
762
- height: var(--saltList-height, var(--list-height));
763
- max-height: var(--list-maxHeight);
764
- outline: none;
765
- overflow-y: auto;
2650
+ /* ../vuu-table/src/table-next/TableNext.css */
2651
+ .vuuTableNext {
2652
+ --vuu-table-cell-outlineWidth: 1px;
2653
+ --table-height: var(--measured-px-height);
2654
+ --table-width: var(--measured-px-width);
2655
+ --vuu-table-next-selection-bookend-width: 4px;
2656
+ --columnResizer-color: transparent;
2657
+ --row-background: white;
2658
+ --cell-borderColor: transparent;
2659
+ --row-borderColor: var(--row-background);
2660
+ --table-background: var(--salt-container-primary-background);
766
2661
  position: relative;
767
2662
  user-select: none;
768
- width: var(--saltList-width, auto);
769
2663
  }
770
- .vuuList-borderless {
771
- --list-borderStyle: none;
2664
+ .vuuTableNext-zebra {
2665
+ --row-background-even: var(--vuu-color-gray-25) ;
772
2666
  }
773
- .vuuList-viewport {
774
- --list-item-height: 30px;
775
- max-height: calc(var(--list-maxHeight) - 2 * var(--list-borderWidth));
2667
+ .vuuTableNext-colLines {
2668
+ --cell-borderColor: var(--salt-separable-tertiary-borderColor);
2669
+ }
2670
+ .vuuTableNext-rowLines {
2671
+ --row-borderColor: var(--salt-separable-tertiary-borderColor);
2672
+ }
2673
+ .vuuTableNext-scrollbarContainer {
2674
+ --scroll-content-width: 1100px;
2675
+ border-bottom: none !important;
2676
+ border-top: none !important;
2677
+ border-left: solid 1px var(--salt-container-primary-borderColor);
2678
+ height: var(--viewport-body-height);
2679
+ left: 0px;
776
2680
  overflow: auto;
2681
+ position: absolute;
2682
+ top: var(--total-header-height);
2683
+ width: var(--table-width);
777
2684
  }
778
- .vuuListItemHeader {
779
- --saltList-item-background: var(--list-item-header-background);
780
- color: var(--list-item-header-color);
2685
+ .vuuTableNext-scrollbarContainer::-webkit-scrollbar {
2686
+ border: none;
2687
+ width: 10px;
781
2688
  }
782
- .vuuListItemHeader[data-sticky=true] {
783
- --saltList-item-background: var(--list-background);
784
- position: sticky;
785
- top: 0;
786
- z-index: 1;
2689
+ .vuuTableNext-scrollbarContainer::-webkit-scrollbar:horizontal {
2690
+ height: 10px;
787
2691
  }
788
- .vuuList-collapsible .vuuListItemHeader:after {
789
- border-width: var(--checkbox-borderWidth);
790
- border-color: var(--checkbox-borderColor);
791
- content: var(--list-item-header-twisty-content);
792
- -webkit-mask: var(--list-svg-chevron-down) center center/12px 12px no-repeat;
793
- mask: var(--list-svg-chevron-down) center center/12px 12px no-repeat;
794
- background: var(--list-item-header-twisty-color);
795
- height: 12px;
796
- left: var(--list-item-header-twisty-left);
797
- right: var(--list-item-header-twisty-right);
798
- margin-top: -8px;
799
- position: absolute;
800
- top: var(--list-item-header-twisty-top);
801
- transition: transform 0.3s;
802
- width: 12px;
2692
+ .vuuTableNext-scrollbarContainer::-webkit-scrollbar-track {
2693
+ background-color: white;
803
2694
  }
804
- .vuuListItemHeader[aria-expanded=false]:after {
805
- transform: rotate(-90deg);
2695
+ .vuuTableNext-scrollbarContainer::-webkit-scrollbar-thumb {
2696
+ background-clip: padding-box;
2697
+ border-radius: 10px;
2698
+ border: 2px solid rgba(0, 0, 0, 0);
2699
+ background-color: var(--vuu-color-gray-30);
806
2700
  }
807
- .vuuList-scrollingContentContainer {
808
- box-sizing: inherit;
2701
+ .vuuTableNext-scrollbarContent {
2702
+ height: calc(var(--content-height) + var(--horizontal-scrollbar-height));
2703
+ position: absolute;
2704
+ width: var(--content-width);
2705
+ }
2706
+ .vuuTableNext-contentContainer {
2707
+ background-color: var(--salt-container-primary-background);
2708
+ height: calc(var(--table-height) - var(--horizontal-scrollbar-height));
809
2709
  position: relative;
2710
+ overflow: auto;
2711
+ overscroll-behavior: none;
2712
+ width: calc(var(--table-width) - var(--vertical-scrollbar-width));
810
2713
  }
811
- .vuuList-virtualized .vuuListItem {
812
- line-height: 30px;
2714
+ .vuuTableNext-contentContainer::-webkit-scrollbar {
2715
+ display: none;
2716
+ }
2717
+ .vuuTableNext-table {
813
2718
  position: absolute;
814
2719
  top: 0;
815
2720
  left: 0;
816
- right: 0;
817
- will-change: transform;
2721
+ table-layout: fixed;
2722
+ width: var(--content-width);
2723
+ margin: 0;
2724
+ border: none;
2725
+ background-color: #fff;
2726
+ border-collapse: separate;
2727
+ border-spacing: 0;
818
2728
  }
819
- .vuuList.saltFocusVisible:after {
820
- inset: 2px;
2729
+ .vuuTableNext-body {
2730
+ height: var(--content-height);
2731
+ }
2732
+ .vuuPinLeft,
2733
+ .vuuPinRight {
2734
+ background-color: inherit;
2735
+ position: sticky;
2736
+ z-index: 1;
2737
+ }
2738
+ .vuuTableNext-col-headings {
2739
+ background-color: white;
2740
+ padding: 0 var(--vuu-table-next-selection-bookend-width, 0);
2741
+ position: sticky;
2742
+ top: 0;
2743
+ z-index: 1;
2744
+ }
2745
+ .vuuTableNext-col-headers {
2746
+ background-color: var(--table-background);
2747
+ white-space: nowrap;
2748
+ }
2749
+ .sizer-cell {
2750
+ background-color: green !important;
2751
+ border: none !important;
2752
+ height: 0px;
2753
+ }
2754
+ .vuuDraggable-vuuTableNext {
2755
+ --header-height: 25px;
2756
+ --vuuTableNextHeaderCell-background: var(--vuu-color-gray-25);
2757
+ }
2758
+
2759
+ /* ../vuu-table/src/table-next/cell-renderers/dropdown-cell/DropdownCell.css */
2760
+ .vuuTableDropdownCell {
2761
+ --vuu-icon-height: 15px;
2762
+ --salt-focused-outlineStyle: none;
2763
+ --saltButton-borderRadius: 4px;
2764
+ font-weight: 500;
2765
+ }
2766
+ .vuuTableDropdownCell button:focus-visible {
2767
+ --saltButton-borderColor: var(--vuu-color-purple-10);
2768
+ --saltButton-borderWidth: 2px;
2769
+ padding-left: 3px;
2770
+ }
2771
+
2772
+ /* ../vuu-table/src/table-next/cell-renderers/input-cell/InputCell.css */
2773
+ .vuuTableInputCell.saltInput-primary {
2774
+ --salt-focused-outlineStyle: none;
2775
+ --saltInput-height: 17px;
2776
+ --saltInput-minHeight: 17px;
2777
+ border-radius: 4px;
2778
+ font-weight: 500;
2779
+ }
2780
+ .vuuTableNextCell:focus .vuuTableInputCell.saltInput-primary,
2781
+ .vuuTableInputCell.saltInput-primary.saltInput-focused {
2782
+ border: solid 2px var(--vuu-color-purple-10);
2783
+ padding: 0 3px;
2784
+ }
2785
+ .vuuTableInputCell-icon {
2786
+ --vuu-icon-height: 13px;
2787
+ --vuu-icon-size: 15px;
2788
+ --vuu-icon-width: 12px;
2789
+ border-radius: 10px;
2790
+ }
2791
+ .vuuTableNextCell:focus .vuuTableInputCell.saltInput-primary.vuuTableInputCell-error,
2792
+ .vuuTableInputCell.saltInput-primary.saltInput-focused.vuuTableInputCell-error {
2793
+ border: solid 2px var(--vuu-color-red-50);
2794
+ }
2795
+ .vuuTableInputCell-error.saltInput-primary {
2796
+ border: solid 1px var(--vuu-color-red-50);
2797
+ }
2798
+
2799
+ /* ../vuu-ui-controls/src/instrument-search/SearchCell.css */
2800
+ .vuuSearchCell {
2801
+ --vuu-icon-left: 0;
2802
+ --vuu-icon-size: 16px;
2803
+ --vuu-icon-top: 0px;
2804
+ align-items: center;
2805
+ color: var(--background-cell-color);
2806
+ display: flex;
2807
+ gap: 4px;
2808
+ padding: 0 8px 0 8px;
2809
+ position: relative;
2810
+ z-index: -1;
2811
+ }
2812
+
2813
+ /* ../vuu-ui-controls/src/instrument-search/InstrumentSearch.css */
2814
+ .vuuInstrumentSearch {
2815
+ height: 100%;
2816
+ padding: var(--vuuInstrumentSearch-padding, 12px);
2817
+ display: flex;
2818
+ flex-direction: column;
2819
+ }
2820
+ .vuuInstrumentSearch-inputField {
2821
+ --vuu-icon-size: 16px;
2822
+ flex: 0 0 40px;
2823
+ }
2824
+ .vuuInstrumentSearch-list {
2825
+ background-color: var(--salt-container-primary-background);
2826
+ flex: 1 1 auto;
2827
+ }
2828
+ .vuuInstrumentSearch .vuuTableNextCell {
2829
+ padding: 0;
2830
+ }
2831
+
2832
+ /* ../vuu-ui-controls/src/price-ticker/PriceTicker.css */
2833
+ @property --price-ticker-color { syntax: "<color>"; initial-value: #15171B; inherits: false; }
2834
+ .vuuPriceTicker {
2835
+ align-items: center;
2836
+ display: flex;
2837
+ font-size: var(--vuuPriceTicker-fontSize, var(--salt-text-fontSize));
2838
+ font-weight: var(--vuuPriceTicker-fontWeight, 700);
2839
+ transition-property: color;
2840
+ transition-duration: .3s;
2841
+ }
2842
+ .vuuPriceTicker.up1 {
2843
+ --vuu-icon-color: var(--vuu-color-green-50);
2844
+ color: var(--vuu-color-green-50);
2845
+ animation-duration: 30s;
2846
+ }
2847
+ .vuuPriceTicker.up2 {
2848
+ --vuu-icon-color: var(--vuu-color-green-50);
2849
+ color: var(--vuu-color-green-50);
2850
+ animation-duration: 30s;
2851
+ }
2852
+ .vuuPriceTicker.down1 {
2853
+ --vuu-icon-transform: rotate(180deg);
2854
+ --vuu-icon-color: var(--vuu-color-red-50);
2855
+ color: var(--vuu-color-red-50);
2856
+ animation-duration: 30s;
2857
+ }
2858
+ .vuuPriceTicker.down2 {
2859
+ --vuu-icon-transform: rotate(180deg);
2860
+ --vuu-icon-color: var(--vuu-color-red-50);
2861
+ color: var(--vuu-color-red-50);
2862
+ animation-duration: 30s;
821
2863
  }
822
2864
 
823
2865
  /* ../vuu-ui-controls/src/tabstrip/Tabstrip.css */
@@ -827,17 +2869,18 @@ path.drop-target.centre {
827
2869
  --tabstrip-display: inline-flex;
828
2870
  --tabstrip-background: transparent;
829
2871
  align-self: var(--saltTabs-tabstrip-alignSelf, stretch);
2872
+ display: flex;
830
2873
  font-size: var(--salt-text-fontSize);
831
2874
  font-weight: var(--vuuTabstrip-fontWeight, var(--salt-text-fontWeight));
2875
+ min-width: 28px;
832
2876
  position: relative;
833
2877
  overflow: visible;
834
- display: flex;
835
- min-width: 28px;
836
2878
  width: var(--tabstrip-width);
837
2879
  }
838
2880
  .vuuTabstrip-horizontal {
839
2881
  --tabstrip-height: var(--vuuTabstrip-height, 28px);
840
2882
  --tabstrip-width: var(--vuuTabstrip-width, 100%);
2883
+ --tab-height: var(--tabstrip-height);
841
2884
  --tab-width: auto;
842
2885
  --tab-thumb-height: 2px;
843
2886
  --tab-thumb-left: var(--tab-thumb-offset, 0);
@@ -849,8 +2892,9 @@ path.drop-target.centre {
849
2892
  .vuuTabstrip-vertical {
850
2893
  --tabstrip-height: var(--vuuTabstrip-height, 100%);
851
2894
  --tabstrip-width: var(--vuuTabstrip-width, 100px);
2895
+ --tab-height: 50px;
852
2896
  --tab-width: 100%;
853
- --tab-thumb-height: var(--tab-thumb-size, 100%);
2897
+ --tab-thumb-height: 0;
854
2898
  --tab-thumb-left: 0;
855
2899
  --tab-thumb-top: var(--tab-thumb-offset, 0);
856
2900
  --tab-thumb-width: 2px;
@@ -864,7 +2908,7 @@ path.drop-target.centre {
864
2908
  --saltButton-height: 20px;
865
2909
  --saltButton-width: 20px;
866
2910
  }
867
- .vuuTabstrip-overflowMenu.saltDropdown {
2911
+ .vuuTabstrip-overflowMenu.vuuDropdown {
868
2912
  --saltIcon-margin: 2px 0 0 0px;
869
2913
  }
870
2914
  .vuuTabstrip-overflowMenu-open {
@@ -933,9 +2977,9 @@ path.drop-target.centre {
933
2977
  /* ../vuu-ui-controls/src/tabstrip/Tab.css */
934
2978
  .vuuTab {
935
2979
  --saltEditableLabel-padding: 0;
936
- --saltEditableLabel-height: var(--tabstrip-height);
2980
+ --saltEditableLabel-height: calc(var(--tabstrip-height) - 2px);
937
2981
  --saltInputLegacy-minWidth: 4em;
938
- --saltEditableLabel-top: 3px;
2982
+ --saltEditableLabel-top: 2px;
939
2983
  --tab-background: var(--vuuTab-background, var(--salt-navigable-primary-background));
940
2984
  --tab-cursor: pointer;
941
2985
  --tab-position: relative;
@@ -950,7 +2994,7 @@ path.drop-target.centre {
950
2994
  cursor: var(--vuuTab-cursor, var(--tab-cursor));
951
2995
  display: var(--tabstrip-display);
952
2996
  gap: 8px;
953
- height: var(--vuuTab-height, var(--tabstrip-height));
2997
+ height: var(--vuuTabHeight, var(--tab-height));
954
2998
  letter-spacing: var(--vuuTab-letterSpacing, var(--tab-letterSpacing, 0));
955
2999
  min-width: var(--vuuTab-minWidth, 40px);
956
3000
  outline: none;
@@ -976,7 +3020,8 @@ path.drop-target.centre {
976
3020
  font-family: inherit;
977
3021
  font-size: inherit;
978
3022
  font-weight: inherit;
979
- height: var(--vuuTabstrip-height, var(--salt-size-stackable));
3023
+ height: calc(var(--tab-height) - var(--tab-thumb-height));
3024
+ margin-bottom: var(--tab-thumb-height);
980
3025
  outline: none;
981
3026
  position: relative;
982
3027
  }
@@ -1313,23 +3358,28 @@ path.drop-target.centre {
1313
3358
  --saltToolbarField-marginTop: 0;
1314
3359
  }
1315
3360
 
3361
+ /* src/measured-container/MeasuredContainer.css */
3362
+ .vuuMeasuredContainer {
3363
+ height: var(--vuuMeasuredContainer-height, var(--measured-css-height));
3364
+ width: var(--measured-css-width);
3365
+ }
3366
+
1316
3367
  /* src/overflow-container/OverflowContainer.css */
1317
3368
  .vuuOverflowContainer {
1318
- --item-gap: 4px;
3369
+ --item-gap: 2px;
1319
3370
  --overflow-direction: row;
1320
3371
  --overflow-width: 0px;
1321
- --overflow-order: 99;
1322
3372
  --border-size: calc((var(--overflow-container-height) - 24px) / 2);
1323
- background-color: var(--vuuOverflowContainer-background, black);
3373
+ background-color: var(--vuuOverflowContainer-background);
1324
3374
  height: var(--overflow-container-height);
1325
3375
  }
1326
3376
  .vuuOverflowContainer-horizontal {
1327
3377
  --item-align: center;
1328
- --item-margin: 0 0 0 var(--item-gap);
3378
+ --item-margin: 0 var(--item-gap) 0 var(--item-gap);
1329
3379
  }
1330
3380
  .vuuOverflowContainer-vertical {
1331
3381
  --item-align: stretch;
1332
- --item-margin: var(--item-gap) 0 0 0;
3382
+ --item-margin: var(--item-gap) 0 var(--item-gap) 0;
1333
3383
  --overflow-direction: column;
1334
3384
  }
1335
3385
  .vuuOverflowContainer-wrapContainer {
@@ -1349,12 +3399,6 @@ path.drop-target.centre {
1349
3399
  --overflow-position: relative;
1350
3400
  --overflow-width: auto;
1351
3401
  }
1352
- .vuuOverflowContainer-item:first-child {
1353
- --item-gap: 0;
1354
- }
1355
- .vuuOverflowContainer-item:first-child {
1356
- --item-margin: 0;
1357
- }
1358
3402
  .vuuOverflowContainer-item {
1359
3403
  align-items: inherit;
1360
3404
  display: flex;
@@ -1363,10 +3407,14 @@ path.drop-target.centre {
1363
3407
  height: var(--overflow-container-height);
1364
3408
  margin: var(--item-margin);
1365
3409
  }
3410
+ .vuuOverflowContainer-item[data-align=right] {
3411
+ margin-left: auto;
3412
+ }
1366
3413
  .vuuOverflowContainer-item.wrapped {
1367
3414
  --overflow-item-bg: #ccc;
1368
3415
  order: 3;
1369
3416
  }
3417
+ .vuuOverflowContainer-item.vuuDraggable-dragAway,
1370
3418
  .vuuOverflowContainer-item:has(.vuuDraggable-dragAway) {
1371
3419
  display: none;
1372
3420
  }
@@ -1379,45 +3427,44 @@ path.drop-target.centre {
1379
3427
  display: flex;
1380
3428
  height: var(--overflow-container-height);
1381
3429
  height: var(--overflow-container-height);
1382
- order: var(--overflow-order);
3430
+ order: var(--overflow-order, 99);
1383
3431
  overflow: hidden;
1384
3432
  left: var(--overflow-left, 100%);
1385
3433
  position: var(--overflow-position, absolute);
1386
3434
  width: var(--overflow-width);
1387
3435
  }
3436
+ .vuuDraggable-vuuOverflowContainer {
3437
+ align-items: center;
3438
+ display: flex;
3439
+ height: 44px;
3440
+ }
1388
3441
 
1389
3442
  /* src/palette/Palette.css */
3443
+ .vuuPalette {
3444
+ --vuuList-borderStyle: none;
3445
+ }
1390
3446
  .vuuPalette-horizontal {
1391
3447
  align-items: center;
1392
3448
  display: flex;
1393
3449
  }
1394
3450
  .vuuPaletteItem {
1395
- --vuu-icon-color: var(--salt-separable-primary-borderColor);
1396
- --vuu-icon-inset: calc(50% - 12px) auto auto -3px;
1397
- --vuu-icon-height: 24px;
1398
- --vuu-icon-width: 24px;
3451
+ --vuu-icon-color: var(--salt-text-primary-foreground);
3452
+ --vuu-icon-left: 0;
3453
+ --vuu-icon-size: 16px;
3454
+ --vuu-icon-top: 11px;
1399
3455
  --list-item-text-padding: 0 0 0 calc(var(--salt-size-unit) * 3);
1400
- }
1401
- .vuuPaletteItem[data-draggable]:after {
1402
- height: 22px;
1403
- width: 6px;
1404
- content: "";
1405
- position: absolute;
1406
- background-image:
1407
- linear-gradient(45deg, rgb(180, 183, 190) 25%, transparent 25%),
1408
- linear-gradient(-45deg, rgb(180, 183, 190) 25%, transparent 25%),
1409
- linear-gradient(45deg, transparent 75%, rgb(180, 183, 190) 25%),
1410
- linear-gradient(-45deg, transparent 75%, rgb(180, 183, 190) 25%);
1411
- background-size: 4px 4px;
1412
- background-position:
1413
- 0 0,
1414
- 2px 0,
1415
- 2px -2px,
1416
- 0 2px;
3456
+ border-bottom: solid 1px var(--salt-separable-tertiary-borderColor);
3457
+ padding-left: 12px;
3458
+ font-size: 12px;
3459
+ font-weight: 600;
1417
3460
  }
1418
3461
  .vuuSimpleDraggableWrapper > .vuuPaletteItem {
1419
3462
  --vuu-icon-color: var(--salt-selectable-foreground);
1420
3463
  }
3464
+ .salt-theme .vuuPaletteItem {
3465
+ font-size: 11px;
3466
+ font-weight: normal;
3467
+ }
1421
3468
 
1422
3469
  /* src/stack/Stack.css */
1423
3470
  .Tabs {
@@ -1457,6 +3504,21 @@ path.drop-target.centre {
1457
3504
  --spacing-medium: 5px;
1458
3505
  }
1459
3506
 
3507
+ /* src/toolbar/Toolbar.css */
3508
+ .vuuToolbar {
3509
+ background: var(--vuuToolbar-background, inherit);
3510
+ height: var(--vuuToolbar-height, 36px);
3511
+ }
3512
+ .vuuToolbarItem {
3513
+ height: 100%;
3514
+ }
3515
+ .vuuToolbarItem.vuuFocusVisible {
3516
+ outline-color: var(--vuuToolbarItem-outlineColor, var(--salt-focused-outlineColor));
3517
+ outline-style: dashed;
3518
+ outline-width: 1px;
3519
+ outline-offset: -1px;
3520
+ }
3521
+
1460
3522
  /* src/tools/devtools-box/layout-configurator.css */
1461
3523
  [data-design-mode=true] .Component {
1462
3524
  filter: grayscale(100%);