@vuu-ui/vuu-table 0.7.2 → 0.7.3-debug

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.css CHANGED
@@ -1,2 +1,494 @@
1
- .vuuTable{--cell-outline-width: 2px;user-select:none}[role=cell]{display:inline-block}[data-align=end]{margin-left:auto}[data-align=end]+[data-align=end]{margin-left:0}.vuuTable-table [role=cell]{--saltEditableLabel-height: 17px;--saltInput-height: 17px;--saltInput-minHeight: 17px;border-right:1px solid var(--vuuTableCell-border-rightColor);border-bottom:1px solid var(--vuuTableCell-border-bottomColor);color:var(--salt-text-primary-foreground);cursor:default;height:var(--vuuTable-rowHeight);line-height:calc(var(--vuuTable-rowHeight) - 1px);overflow:hidden;padding:0 5px;vertical-align:top}.vuuTable-headerCell:focus,.vuuTable [role=cell]:focus{outline:var(--vuuTableCell-outline, dotted var(--salt-color-blue-400) var(--cell-outline-width));outline-offset:calc(var(--cell-outline-width) * -1);box-shadow:inset 0 0 0 var(--cell-outline-width) #fff;border-bottom:none}.vuuTable-headerCell:focus .vuuTable-headerCell-inner{padding-bottom:var(--cell-outline-width)}.vuuTable-headerCell:not(.vuuTable-headerCell-resizing):focus .vuuTable-headerCell-inner{--columnResizer-color: transparent}.vuuTable [role=cell]:focus{border-right:none;padding-bottom:1px}[role=cell][data-editable=true]{--salt-text-fontSize: 10px;--vuu-icon-size: 5px;position:relative}[role=cell][data-editable=true]:after{top:0;content:"";background-color:var(--salt-text-secondary-foreground, black);left:0;height:var(--vuu-icon-height, var(--vuu-icon-size, 12px));-webkit-mask:var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);mask:var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;position:absolute;transform:rotate(180deg);width:var(--vuu-icon-width, var(--vuu-icon-size, 12px))}[role=cell]:focus[data-editable],[role=cell]:focus-within[data-editable],[role=cell]:has(.saltEditableLabel-editing){outline:solid var(--salt-color-blue-400) 1px;background-color:#fff;outline-offset:-1px}[role=cell]:focus[data-editable=true]:after,[role=cell]:has(.saltEditableLabel):after{background-color:var(--salt-color-blue-400);left:1px;top:1px}.vuuAlignRight{text-align:right}.vuuTableGroupCell{--spacer-width: 20px;--toggle-icon-transform: var(--row-toggle-icon-transform, none);--vuu-icon-width: 18px;align-items:center;display:inline-flex}.vuuTableGroupCell-spacer{height:100%;position:relative;width:var(--spacer-width)}.vuuTableGroupCell-spacer:after{background:var(--salt-container-primary-borderColor);content:"";position:absolute;top:0;bottom:-1px;left:9px;width:1px}.vuuTableGroupCell-toggle{transition:transform .25s;transform:var(--toggle-icon-transform)}.vuuTableRow{--row-background: var(--table-background);position:absolute;top:0}.vuuTableRow-even{--row-background: var(--row-background-even)}.vuuTableRow{background-color:var(--row-background)}.vuuTableRow-expanded{--row-toggle-icon-transform: rotate(90deg)}.vuuTableRow[aria-selected]{background-color:var(--vuuTableRow-selected-background, var(--salt-selectable-background-selected));--vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected)}.vuuTableRow-preSelected{--vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected)}.vuuColumnResizer{background-color:var(--columnResizer-color);cursor:col-resize;height:100%;position:relative;width:4px}.vuuColumnResizer:hover{--columnResizer-color: var(--salt-color-blue-500)}.vuuColumnResizer:after{content:"";position:absolute;width:var(--columnResizer-width, 1px);top:0;bottom:0;right:-1px;background-color:var(--columnResizer-color, var(--salt-separable-tertiary-borderColor));height:var(--columnResizer-height, calc(100% + 1px))}.salt-theme{--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>')}.vuuTable-groupHeaderCell{--cell-align: "flex-start";text-align:left;background:var(--dataTable-background);cursor:default;height:var(--vuuTableHeaderHeight)}.vuuTable-groupHeaderCell-inner{align-items:center;display:flex;height:100%;padding-left:1px}.vuuTable-groupHeaderCell-label{align-items:center;display:flex;flex:0 0 auto}.vuuTable-groupHeaderCell-col{align-items:center;background-color:inherit;display:inline-flex;flex:0 1 auto;height:calc(var(--vuuTableHeaderHeight) - 2px);justify-content:space-between;padding-right:8px;position:relative}.vuuTable-groupHeaderCell-close{--vuu-icon-height: 18px;--vuu-icon-width: 18px;cursor:pointer;left:3px}.vuuTable-groupHeaderCell-col:nth-child(odd){background-color:var(--salt-color-gray-50)}.vuuTable-groupHeaderCell-col:nth-child(even){background-color:var(--salt-color-gray-40)}.vuuTable-groupHeaderCell-col:first-child{clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%);padding-left:3px;z-index:1}.vuuTable-groupHeaderCell-col:not(:first-child){margin-left:-6px;padding-left:12px;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%,8px 50%)}.vuuTable-groupHeaderCell-resizing{--columnResizer-color: var(--salt-color-blue-500);--columnResizer-height: var(--table-height);--columnResizer-width: 2px}.vuuTable-groupHeaderCell-pending{--pending-content: ""}.vuuTable-groupHeaderCell-col:has(+ .vuuColumnResizer):after{content:var(--pending-content);width:24px;height:24px;background-image:var(--svg-spinner);background-repeat:no-repeat;background-size:cover}.vuuSortIndicator{--menu-icon-size: 18px;--menu-item-icon-color: black;display:flex;flex-direction:column;position:relative;width:18px}.vuuSortPosition{font-size:10px;line-height:10px;text-align:center}.vuuTable-heading:nth-child(2){--heading-top: calc(var(--header-height))}.vuuTable-heading:nth-child(3){--heading-top: calc(var(--header-height) * 2)}.vuuTable-heading:nth-child(3){--heading-top: calc(var(--header-height) * 3)}.vuuTable-headingCell{background:var(--dataTable-background);border-color:var(--salt-separable-tertiary-borderColor);border-style:solid solid solid none;border-width:1px;color:var(--salt-text-secondary-foreground);display:inline-block;height:var(--vuuTableHeaderHeight);padding:0!important}.vuuTable-heading:has(+ .vuuTable-heading)>.vuuTable-headingCell{border-bottom-color:transparent}[role=columnHeader]{--vuuTableCell-border-bottomColor: var(--salt-separable-tertiary-borderColor);--cell-align: "flex-start";display:inline-block;text-align:left;background:var(--dataTable-background);border-right:1px solid var(--vuuTableCell-border-rightColor);border-bottom:1px solid var(--vuuTableCell-border-bottomColor);color:var(--salt-text-secondary-foreground);cursor:default;height:var(--vuuTableHeaderHeight);padding:0!important;vertical-align:top}.vuuTable-headerCell-right{--cell-align: flex-end}.vuuTable-headerCell-inner{align-items:stretch;display:flex;height:100%;padding:0 0 0 3px}.vuuTable-headerCell-inner:has(.vuuFilterIndicator){padding-left:0}.vuuTable-headerCell-label{align-items:center;justify-content:var(--cell-align);display:flex;flex:1 1 auto}.vuuTable-headerCell-resizing{--columnResizer-color: var(--salt-color-blue-500);--columnResizer-height: var(--table-height);--columnResizer-width: 2px}[role=headerCell].vuuPinLeft.vuuEndPin:after{box-shadow:2px 0 5px #0006;content:"";position:absolute;width:1px;background-color:transparent;height:var(--table-height);top:0;right:0px}[role=headerCell].vuuPinRight.vuuEndPin:after{box-shadow:-2px 0 5px #0000004d;content:"";position:absolute;width:1px;background-color:transparent;height:var(--table-height);top:0;left:0px}[role=headerCell]:is(.vuuPinLeft,.vuuPinRight,.vuuPinFloating){top:0;z-index:20}.saltDraggable-vuuTable-headerCell{--dataTable-background: ivory;--vuuTableHeaderHeight: 25px}.vuuFilterIndicator{--menu-icon-size: 12px;--menu-item-icon-color: black;align-items:center;cursor:pointer;display:flex;flex:0 0 18px;flex-direction:column;justify-content:center;position:relative}.vuuFilterIndicator+.vuuTable-headerCell-inner{padding-left:0}.vuuTable-table{--vuuTable-rowHeight: var(--row-height);--vuuTableCell-border-bottomColor: transparent;--vuuTableCell-border-rightColor: var(--salt-separable-tertiary-borderColor);border-collapse:separate;border-spacing:0;border-left:1px solid #ccc;border:none;font-size:var(--vuuTable-font-size, 10px);margin:0;min-height:100%;width:var(--content-width)}.vuuTable-headers{position:sticky;top:0;z-index:1}.vuuTable-body{height:var(--content-height);position:relative}.vuuTable{--dataTable-background: var(--salt-container-primary-background, inherit);--row-background-even: var(--dataTable-background);--row-background-odd: var(--dataTable-background);--table-background: var(--dataTable-background, none);background-color:var(--dataTable-background);position:relative}.vuuTable-zebra{--row-background-even: var(--salt-container-secondary-background)}.vuuTable-scrollbarContainer{--scroll-content-width: calc(var(--content-width) - var(--pinned-width-left));border-bottom:none!important;border-top:none!important;border-left:solid 1px var(--salt-container-primary-borderColor);box-shadow:0 -1px 0 0 var(--salt-container-primary-borderColor);height:var(--viewport-body-height);left:var(--pinned-width-left);overflow:auto;position:absolute;top:var(--total-header-height);width:calc(var(--table-width) - var(--pinned-width-left) + 1px)}.vuuTable-scrollbarContent{height:calc(var(--content-height) + var(--horizontal-scrollbar-height));position:absolute;width:var(--scroll-content-width, var(--content-width))}.vuuTable-contentContainer{--vuuTableHeaderHeight: var(--header-height, 30px);background-color:var(--salt-container-primary-background);height:calc(var(--table-height) - var(--horizontal-scrollbar-height));position:relative;overflow:auto;overscroll-behavior:none;width:calc(var(--table-width) - var(--vertical-scrollbar-width))}.vuuTable-contentContainer::-webkit-scrollbar{display:none}:is(.vuuPinLeft,.vuuPinRight,.vuuPinFloating){background-color:inherit;position:sticky;z-index:1}.vuuTable-settings{--saltButton-height: var(--header-height);--saltButton-width: 15px;position:absolute!important;right:0;top:0}.vuuTable:has(.vuuTable-headerCell-resizing) *{cursor:col-resize}.vuuTable-loading .vuuTable-table{--skeleton-height: 20px;--skeleton-width: calc(var(--content-width) - 8px);--skeleton-left: 4px;--skeleton-row-height: 16px;--skeleton-size: var(--skeleton-width) var(--skeleton-height);--skeleton-row: linear-gradient( var(--salt-color-gray-20-fade-background) var(--skeleton-row-height), transparent 0 );--skeleton-background-image: var(--skeleton-row);background-image:var(--skeleton-background-image);background-repeat:repeat-y;background-size:var(--skeleton-size);background-position-x:var(--skeleton-left);background-position-y:27px}.vuuTable-loading .vuuTable-table:after{animation:shimmer 2s infinite;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));content:"";height:var(--table-height);left:0px;position:absolute;transform:translate(-100%);top:var(--header-height);width:var(--content-width)}@keyframes shimmer{to{transform:translate(100%)}}.vuuJsonCell-group{align-items:center;display:inline-flex;height:calc(var(--vuuTable-rowHeight) - 1px);width:100%}.vuuJsonCell-toggle{--vuu-icon-color: var(--salt-text-primary-foreground);--vuu-icon-height: calc(var(--vuuTable-rowHeight) - 1px);--vuu-icon-width: 18px;flex-shrink:0;margin-left:auto}.vuuJsonCell-name{font-weight:var(--salt-typography-fontWeight-semiBold)}.vuuJsonCell-value{overflow:hidden;text-overflow:ellipsis}
1
+ /* src/TableCell.css */
2
+ .vuuTable {
3
+ --cell-outline-width: 2px;
4
+ user-select: none;
5
+ }
6
+ [role=cell] {
7
+ display: inline-block;
8
+ }
9
+ [data-align=end] {
10
+ margin-left: auto;
11
+ }
12
+ [data-align=end] + [data-align=end] {
13
+ margin-left: 0;
14
+ }
15
+ .vuuTable-table [role=cell] {
16
+ --saltEditableLabel-height: 17px;
17
+ --saltInput-height: 17px;
18
+ --saltInput-minHeight: 17px;
19
+ border-right: 1px solid var(--vuuTableCell-border-rightColor);
20
+ border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);
21
+ color: var(--salt-text-primary-foreground);
22
+ cursor: default;
23
+ height: var(--vuuTable-rowHeight);
24
+ line-height: calc(var(--vuuTable-rowHeight) - 1px);
25
+ overflow: hidden;
26
+ padding: 0 5px;
27
+ vertical-align: top;
28
+ }
29
+ .vuuTable-headerCell:focus,
30
+ .vuuTable [role=cell]:focus {
31
+ outline: var(--vuuTableCell-outline, dotted var(--salt-color-blue-400) var(--cell-outline-width));
32
+ outline-offset: calc(var(--cell-outline-width) * -1);
33
+ box-shadow: inset 0 0 0 var(--cell-outline-width) white;
34
+ border-bottom: none;
35
+ }
36
+ .vuuTable-headerCell:focus .vuuTable-headerCell-inner {
37
+ padding-bottom: var(--cell-outline-width);
38
+ }
39
+ .vuuTable-headerCell:not(.vuuTable-headerCell-resizing):focus .vuuTable-headerCell-inner {
40
+ --columnResizer-color: transparent;
41
+ }
42
+ .vuuTable [role=cell]:focus {
43
+ border-right: none;
44
+ padding-bottom: 1px;
45
+ }
46
+ [role=cell][data-editable=true] {
47
+ --salt-text-fontSize: 10px;
48
+ --vuu-icon-size: 5px;
49
+ position: relative;
50
+ }
51
+ [role=cell][data-editable=true]:after {
52
+ top: 0;
53
+ content: "";
54
+ background-color: var(--salt-text-secondary-foreground, black);
55
+ left: 0;
56
+ height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));
57
+ -webkit-mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);
58
+ mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);
59
+ mask-repeat: no-repeat;
60
+ -webkit-mask-repeat: no-repeat;
61
+ position: absolute;
62
+ transform: rotate(180deg);
63
+ width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));
64
+ }
65
+ [role=cell]:focus[data-editable],
66
+ [role=cell]:focus-within[data-editable],
67
+ [role=cell]:has(.saltEditableLabel-editing) {
68
+ outline: solid var(--salt-color-blue-400) 1px;
69
+ background-color: white;
70
+ outline-offset: -1px;
71
+ }
72
+ [role=cell]:focus[data-editable=true]:after,
73
+ [role=cell]:has(.saltEditableLabel):after {
74
+ background-color: var(--salt-color-blue-400);
75
+ left: 1px;
76
+ top: 1px;
77
+ }
78
+ .vuuAlignRight {
79
+ text-align: right;
80
+ }
81
+
82
+ /* src/TableGroupCell.css */
83
+ .vuuTableGroupCell {
84
+ --spacer-width: 20px;
85
+ --toggle-icon-transform: var(--row-toggle-icon-transform, none);
86
+ --vuu-icon-width: 18px;
87
+ align-items: center;
88
+ display: inline-flex;
89
+ }
90
+ .vuuTableGroupCell-spacer {
91
+ height: 100%;
92
+ position: relative;
93
+ width: var(--spacer-width);
94
+ }
95
+ .vuuTableGroupCell-spacer:after {
96
+ background: var(--salt-container-primary-borderColor);
97
+ content: "";
98
+ position: absolute;
99
+ top: 0;
100
+ bottom: -1px;
101
+ left: 9px;
102
+ width: 1px;
103
+ }
104
+ .vuuTableGroupCell-toggle {
105
+ transition: transform 0.25s;
106
+ transform: var(--toggle-icon-transform);
107
+ }
108
+
109
+ /* src/TableRow.css */
110
+ .vuuTableRow {
111
+ --row-background: var(--table-background);
112
+ position: absolute;
113
+ top: 0;
114
+ }
115
+ .vuuTableRow-even {
116
+ --row-background: var(--row-background-even);
117
+ }
118
+ .vuuTableRow {
119
+ background-color: var(--row-background);
120
+ }
121
+ .vuuTableRow-expanded {
122
+ --row-toggle-icon-transform: rotate(90deg);
123
+ }
124
+ .vuuTableRow[aria-selected] {
125
+ background-color: var(--vuuTableRow-selected-background, var(--salt-selectable-background-selected));
126
+ --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);
127
+ }
128
+ .vuuTableRow-preSelected {
129
+ --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);
130
+ }
131
+
132
+ /* src/ColumnResizer.css */
133
+ .vuuColumnResizer {
134
+ background-color: var(--columnResizer-color);
135
+ cursor: col-resize;
136
+ height: 100%;
137
+ position: relative;
138
+ width: 4px;
139
+ }
140
+ .vuuColumnResizer:hover {
141
+ --columnResizer-color: var(--salt-color-blue-500);
142
+ }
143
+ .vuuColumnResizer:after {
144
+ content: "";
145
+ position: absolute;
146
+ width: var(--columnResizer-width, 1px);
147
+ top: 0;
148
+ bottom: 0;
149
+ right: -1px;
150
+ background-color: var(--columnResizer-color, var(--salt-separable-tertiary-borderColor));
151
+ height: var(--columnResizer-height, calc(100% + 1px));
152
+ }
153
+
154
+ /* src/TableGroupHeaderCell.css */
155
+ .salt-theme {
156
+ --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>');
157
+ }
158
+ .vuuTable-groupHeaderCell {
159
+ --cell-align: "flex-start";
160
+ text-align: left;
161
+ background: var(--dataTable-background);
162
+ cursor: default;
163
+ height: var(--vuuTableHeaderHeight);
164
+ }
165
+ .vuuTable-groupHeaderCell-inner {
166
+ align-items: center;
167
+ display: flex;
168
+ height: 100%;
169
+ padding-left: 1px;
170
+ }
171
+ .vuuTable-groupHeaderCell-label {
172
+ align-items: center;
173
+ display: flex;
174
+ flex: 0 0 auto;
175
+ }
176
+ .vuuTable-groupHeaderCell-col {
177
+ align-items: center;
178
+ background-color: inherit;
179
+ display: inline-flex;
180
+ flex: 0 1 auto;
181
+ height: calc(var(--vuuTableHeaderHeight) - 2px);
182
+ justify-content: space-between;
183
+ padding-right: 8px;
184
+ position: relative;
185
+ }
186
+ .vuuTable-groupHeaderCell-close {
187
+ --vuu-icon-height: 18px;
188
+ --vuu-icon-width: 18px;
189
+ cursor: pointer;
190
+ left: 3px;
191
+ }
192
+ .vuuTable-groupHeaderCell-col:nth-child(odd) {
193
+ background-color: var(--salt-color-gray-50);
194
+ }
195
+ .vuuTable-groupHeaderCell-col:nth-child(even) {
196
+ background-color: var(--salt-color-gray-40);
197
+ }
198
+ .vuuTable-groupHeaderCell-col:first-child {
199
+ clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);
200
+ padding-left: 3px;
201
+ z-index: 1;
202
+ }
203
+ .vuuTable-groupHeaderCell-col:not(:first-child) {
204
+ margin-left: -6px;
205
+ padding-left: 12px;
206
+ clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);
207
+ }
208
+ .vuuTable-groupHeaderCell-resizing {
209
+ --columnResizer-color: var(--salt-color-blue-500);
210
+ --columnResizer-height: var(--table-height);
211
+ --columnResizer-width: 2px;
212
+ }
213
+ .vuuTable-groupHeaderCell-pending {
214
+ --pending-content: "";
215
+ }
216
+ .vuuTable-groupHeaderCell-col:has(+ .vuuColumnResizer):after {
217
+ content: var(--pending-content);
218
+ width: 24px;
219
+ height: 24px;
220
+ background-image: var(--svg-spinner);
221
+ background-repeat: no-repeat;
222
+ background-size: cover;
223
+ }
224
+
225
+ /* src/SortIndicator.css */
226
+ .vuuSortIndicator {
227
+ --menu-icon-size: 18px;
228
+ --menu-item-icon-color: black;
229
+ display: flex;
230
+ flex-direction: column;
231
+ position: relative;
232
+ width: 18px;
233
+ }
234
+ .vuuSortPosition {
235
+ font-size: 10px;
236
+ line-height: 10px;
237
+ text-align: center;
238
+ }
239
+
240
+ /* src/TableHeaderCell.css */
241
+ .vuuTable-heading:nth-child(2) {
242
+ --heading-top: calc(var(--header-height));
243
+ }
244
+ .vuuTable-heading:nth-child(3) {
245
+ --heading-top: calc(var(--header-height) * 2);
246
+ }
247
+ .vuuTable-heading:nth-child(3) {
248
+ --heading-top: calc(var(--header-height) * 3);
249
+ }
250
+ .vuuTable-headingCell {
251
+ background: var(--dataTable-background);
252
+ border-color: var(--salt-separable-tertiary-borderColor);
253
+ border-style: solid solid solid none;
254
+ border-width: 1px;
255
+ color: var(--salt-text-secondary-foreground);
256
+ display: inline-block;
257
+ height: var(--vuuTableHeaderHeight);
258
+ padding: 0 !important;
259
+ }
260
+ .vuuTable-heading:has(+ .vuuTable-heading) > .vuuTable-headingCell {
261
+ border-bottom-color: transparent;
262
+ }
263
+ [role=columnHeader] {
264
+ --vuuTableCell-border-bottomColor: var(--salt-separable-tertiary-borderColor);
265
+ --cell-align: "flex-start";
266
+ display: inline-block;
267
+ text-align: left;
268
+ background: var(--dataTable-background);
269
+ border-right: 1px solid var(--vuuTableCell-border-rightColor);
270
+ border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);
271
+ color: var(--salt-text-secondary-foreground);
272
+ cursor: default;
273
+ height: var(--vuuTableHeaderHeight);
274
+ padding: 0 !important;
275
+ vertical-align: top;
276
+ }
277
+ .vuuTable-headerCell-right {
278
+ --cell-align: flex-end;
279
+ }
280
+ .vuuTable-headerCell-inner {
281
+ align-items: stretch;
282
+ display: flex;
283
+ height: 100%;
284
+ padding: 0 0 0 3px;
285
+ }
286
+ .vuuTable-headerCell-inner:has(.vuuFilterIndicator) {
287
+ padding-left: 0;
288
+ }
289
+ .vuuTable-headerCell-label {
290
+ align-items: center;
291
+ justify-content: var(--cell-align);
292
+ display: flex;
293
+ flex: 1 1 auto;
294
+ }
295
+ .vuuTable-headerCell-resizing {
296
+ --columnResizer-color: var(--salt-color-blue-500);
297
+ --columnResizer-height: var(--table-height);
298
+ --columnResizer-width: 2px;
299
+ }
300
+ [role=headerCell].vuuPinLeft.vuuEndPin:after {
301
+ box-shadow: 2px 0px 5px rgba(0, 0, 0, 0.4);
302
+ content: "";
303
+ position: absolute;
304
+ width: 1px;
305
+ background-color: transparent;
306
+ height: var(--table-height);
307
+ top: 0;
308
+ right: 0px;
309
+ }
310
+ [role=headerCell].vuuPinRight.vuuEndPin:after {
311
+ box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.3);
312
+ content: "";
313
+ position: absolute;
314
+ width: 1px;
315
+ background-color: transparent;
316
+ height: var(--table-height);
317
+ top: 0;
318
+ left: 0px;
319
+ }
320
+ [role=headerCell]:is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {
321
+ top: 0;
322
+ z-index: 20;
323
+ }
324
+ .saltDraggable-vuuTable-headerCell {
325
+ --dataTable-background: ivory;
326
+ --vuuTableHeaderHeight: 25px;
327
+ }
328
+
329
+ /* src/filter-indicator.css */
330
+ .vuuFilterIndicator {
331
+ --menu-icon-size: 12px;
332
+ --menu-item-icon-color: black;
333
+ align-items: center;
334
+ cursor: pointer;
335
+ display: flex;
336
+ flex: 0 0 18px;
337
+ flex-direction: column;
338
+ justify-content: center;
339
+ position: relative;
340
+ }
341
+ .vuuFilterIndicator + .vuuTable-headerCell-inner {
342
+ padding-left: 0;
343
+ }
344
+
345
+ /* src/RowBasedTable.css */
346
+ .vuuTable-table {
347
+ --vuuTable-rowHeight: var(--row-height);
348
+ --vuuTableCell-border-bottomColor: transparent;
349
+ --vuuTableCell-border-rightColor: var(--salt-separable-tertiary-borderColor);
350
+ border-collapse: separate;
351
+ border-spacing: 0;
352
+ border-left: 1px solid #ccc;
353
+ border: none;
354
+ font-size: var(--vuuTable-font-size, 10px);
355
+ margin: 0;
356
+ min-height: 100%;
357
+ width: var(--content-width);
358
+ }
359
+ .vuuTable-headers {
360
+ position: sticky;
361
+ top: 0;
362
+ z-index: 1;
363
+ }
364
+ .vuuTable-body {
365
+ height: var(--content-height);
366
+ position: relative;
367
+ }
368
+
369
+ /* src/Table.css */
370
+ .vuuTable {
371
+ --dataTable-background: var(--salt-container-primary-background, inherit);
372
+ --row-background-even: var(--dataTable-background);
373
+ --row-background-odd: var(--dataTable-background);
374
+ --table-background: var(--dataTable-background, none);
375
+ background-color: var(--dataTable-background);
376
+ position: relative;
377
+ }
378
+ .vuuTable-zebra {
379
+ --row-background-even: var(--salt-container-secondary-background);
380
+ }
381
+ .vuuTable-scrollbarContainer {
382
+ --scroll-content-width: calc(var(--content-width) - var(--pinned-width-left));
383
+ border-bottom: none !important;
384
+ border-top: none !important;
385
+ border-left: solid 1px var(--salt-container-primary-borderColor);
386
+ box-shadow: 0px -1px 0px 0px var(--salt-container-primary-borderColor);
387
+ height: var(--viewport-body-height);
388
+ left: var(--pinned-width-left);
389
+ overflow: auto;
390
+ position: absolute;
391
+ top: var(--total-header-height);
392
+ width: calc(var(--table-width) - var(--pinned-width-left) + 1px);
393
+ }
394
+ .vuuTable-scrollbarContent {
395
+ height: calc(var(--content-height) + var(--horizontal-scrollbar-height));
396
+ position: absolute;
397
+ width: var(--scroll-content-width, var(--content-width));
398
+ }
399
+ .vuuTable-contentContainer {
400
+ --vuuTableHeaderHeight: var(--header-height, 30px);
401
+ background-color: var(--salt-container-primary-background);
402
+ height: calc(var(--table-height) - var(--horizontal-scrollbar-height));
403
+ position: relative;
404
+ overflow: auto;
405
+ overscroll-behavior: none;
406
+ width: calc(var(--table-width) - var(--vertical-scrollbar-width));
407
+ }
408
+ .vuuTable-contentContainer::-webkit-scrollbar {
409
+ display: none;
410
+ }
411
+ :is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {
412
+ background-color: inherit;
413
+ position: sticky;
414
+ z-index: 1;
415
+ }
416
+ .vuuTable-settings {
417
+ --saltButton-height: var(--header-height);
418
+ --saltButton-width: 15px;
419
+ position: absolute !important;
420
+ right: 0;
421
+ top: 0;
422
+ }
423
+ .vuuTable:has(.vuuTable-headerCell-resizing) * {
424
+ cursor: col-resize;
425
+ }
426
+
427
+ /* src/Table-loading.css */
428
+ .vuuTable-loading .vuuTable-table {
429
+ --skeleton-height: 20px;
430
+ --skeleton-width: calc(var(--content-width) - 8px);
431
+ --skeleton-left: 4px;
432
+ --skeleton-row-height: 16px;
433
+ --skeleton-size: var(--skeleton-width) var(--skeleton-height);
434
+ --skeleton-row: linear-gradient( var(--salt-color-gray-20-fade-background) var(--skeleton-row-height), transparent 0 );
435
+ --skeleton-background-image: var(--skeleton-row);
436
+ background-image: var(--skeleton-background-image);
437
+ background-repeat: repeat-y;
438
+ background-size: var(--skeleton-size);
439
+ background-position-x: var(--skeleton-left);
440
+ background-position-y: 27px;
441
+ }
442
+ .vuuTable-loading .vuuTable-table {
443
+ --skeleton-height: 20px;
444
+ --skeleton-width: calc(var(--content-width) - 8px);
445
+ --skeleton-left: 4px;
446
+ --skeleton-row-height: 16px;
447
+ --skeleton-size: var(--skeleton-width) var(--skeleton-height);
448
+ --skeleton-row: linear-gradient( var(--salt-color-gray-20-fade-background) var(--skeleton-row-height), transparent 0 );
449
+ --skeleton-background-image: var(--skeleton-row);
450
+ background-image: var(--skeleton-background-image);
451
+ background-repeat: repeat-y;
452
+ background-size: var(--skeleton-size);
453
+ background-position-x: var(--skeleton-left);
454
+ background-position-y: 27px;
455
+ }
456
+ .vuuTable-loading .vuuTable-table:after {
457
+ animation: shimmer 2s infinite;
458
+ 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));
459
+ content: "";
460
+ height: var(--table-height);
461
+ left: 0px;
462
+ position: absolute;
463
+ transform: translateX(-100%);
464
+ top: var(--header-height);
465
+ width: var(--content-width);
466
+ }
467
+ @keyframes shimmer {
468
+ 100% {
469
+ transform: translateX(100%);
470
+ }
471
+ }
472
+
473
+ /* src/cell-renderers/json-cell/JsonCell.css */
474
+ .vuuJsonCell-group {
475
+ align-items: center;
476
+ display: inline-flex;
477
+ height: calc(var(--vuuTable-rowHeight) - 1px);
478
+ width: 100%;
479
+ }
480
+ .vuuJsonCell-toggle {
481
+ --vuu-icon-color: var(--salt-text-primary-foreground);
482
+ --vuu-icon-height: calc(var(--vuuTable-rowHeight) - 1px);
483
+ --vuu-icon-width: 18px;
484
+ flex-shrink: 0;
485
+ margin-left: auto;
486
+ }
487
+ .vuuJsonCell-name {
488
+ font-weight: var(--salt-typography-fontWeight-semiBold);
489
+ }
490
+ .vuuJsonCell-value {
491
+ overflow: hidden;
492
+ text-overflow: ellipsis;
493
+ }
2
494
  /*# sourceMappingURL=index.css.map */
package/index.css.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/vuu-table/src/TableCell.css", "../../../packages/vuu-table/src/TableGroupCell.css", "../../../packages/vuu-table/src/TableRow.css", "../../../packages/vuu-table/src/ColumnResizer.css", "../../../packages/vuu-table/src/TableGroupHeaderCell.css", "../../../packages/vuu-table/src/SortIndicator.css", "../../../packages/vuu-table/src/TableHeaderCell.css", "../../../packages/vuu-table/src/filter-indicator.css", "../../../packages/vuu-table/src/RowBasedTable.css", "../../../packages/vuu-table/src/Table.css", "../../../packages/vuu-table/src/Table-loading.css", "../../../packages/vuu-table/src/cell-renderers/json-cell/JsonCell.css"],
4
4
  "sourcesContent": [".vuuTable {\n --cell-outline-width: 2px;\n user-select: none;\n}\n\n[role=\"cell\"] {\n display: inline-block;\n}\n\n[data-align=\"end\"] {\n margin-left: auto;\n}\n\n[data-align=\"end\"] + [data-align=\"end\"] {\n margin-left: 0;\n}\n\n \n.vuuTable-table [role=\"cell\"] {\n --saltEditableLabel-height: 17px;\n --saltInput-height: 17px;\n --saltInput-minHeight: 17px;\n\n border-right: 1px solid var(--vuuTableCell-border-rightColor);\n border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);\n color: var(--salt-text-primary-foreground);\n cursor: default;\n height: var(--vuuTable-rowHeight);\n line-height: calc(var(--vuuTable-rowHeight) - 1px);\n overflow: hidden;\n padding: 0 5px;\n vertical-align: top;\n}\n\n\n.vuuTable-headerCell:focus,\n.vuuTable [role=\"cell\"]:focus {\n outline: var(--vuuTableCell-outline, dotted var(--salt-color-blue-400) var(--cell-outline-width));\n outline-offset: calc(var(--cell-outline-width) * -1);\n /** This is to achieve a white background to outline dashes */\n box-shadow: inset 0 0 0 var(--cell-outline-width) white;\n border-bottom: none;\n}\n\n.vuuTable-headerCell:focus .vuuTable-headerCell-inner{\n /** This is to achieve a white background to outline dashes */\n padding-bottom: var(--cell-outline-width);\n}\n\n.vuuTable-headerCell:not(.vuuTable-headerCell-resizing):focus .vuuTable-headerCell-inner{\n --columnResizer-color: transparent;\n}\n\n\n.vuuTable [role=\"cell\"]:focus {\n /** This is to achieve a white background to outline dashes */\n border-right: none;\n padding-bottom: 1px;\n}\n\n\n[role=\"cell\"][data-editable=\"true\"] {\n --salt-text-fontSize: 10px;\n --vuu-icon-size: 5px;\n position: relative;\n}\n\n[role=\"cell\"][data-editable=\"true\"]:after {\n top: 0;\n content: \"\";\n background-color: var(--salt-text-secondary-foreground, black);\n left: 0;\n height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));\n -webkit-mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask-repeat: no-repeat;\n -webkit-mask-repeat: no-repeat;\n position: absolute;\n transform: rotate(180deg);\n width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));\n }\n \n [role=\"cell\"]:focus[data-editable],\n [role=\"cell\"]:focus-within[data-editable],\n [role=\"cell\"]:has(.saltEditableLabel-editing) {\n outline: solid var(--salt-color-blue-400) 1px;\n background-color: white;\n outline-offset: -1px;\n}\n\n[role=\"cell\"]:focus[data-editable=\"true\"]:after,\n[role=\"cell\"]:has(.saltEditableLabel):after {\n /* background-color: black; */\n background-color: var(--salt-color-blue-400);\n left: 1px;\n top: 1px;\n}\n\n.vuuAlignRight {\n text-align: right;\n }\n ", ".vuuTableGroupCell {\n --spacer-width: 20px;\n --toggle-icon-transform: var(--row-toggle-icon-transform, none);\n --vuu-icon-width: 18px;\n\n align-items: center;\n display: inline-flex;\n}\n\n.vuuTableGroupCell-spacer {\n height: 100%;\n position: relative;\n width: var(--spacer-width);\n}\n\n.vuuTableGroupCell-spacer:after {\n background: var(--salt-container-primary-borderColor);\n content: '';\n position: absolute;\n top:0;\n bottom: -1px;\n /* left: calc(var(--spacer-width / 2)); */\n left: 9px;\n width: 1px;\n}\n\n.vuuTableGroupCell-toggle {\n transition: transform 0.25s;\n transform: var(--toggle-icon-transform);\n}\n\n\n/* .vuuTableGroupCell-toggle[data-icon='triangle-right']{\n --vuu-icon-svg: var(--svg-plus-box);\n}\n\n.vuuTableRow-expanded .vuuTableGroupCell-toggle[data-icon='triangle-right']{\n --vuu-icon-svg: var(--svg-minus-box);\n} */\n", " .vuuTableRow {\n --row-background: var(--table-background);\n position: absolute;\n top:0;\n }\n\n .vuuTableRow-even {\n --row-background: var(--row-background-even);\n }\n\n /* .vuuTableRow :is(.vuuPinFloating, .vuuPinLeft, .vuuPinRight) {\n background-color: var(--row-background);\n } */\n .vuuTableRow {\n background-color: var(--row-background);\n }\n \n .vuuTableRow-expanded {\n --row-toggle-icon-transform: rotate(90deg);\n }\n \n .vuuTableRow[aria-selected] {\n background-color: var(--vuuTableRow-selected-background, var(--salt-selectable-background-selected));\n --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);\n }\n\n /* .vuuTableRow:not([aria-selected]):has(+ [aria-selected]) {\n --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);\n } */\n\n .vuuTableRow-preSelected {\n --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);\n }", ".vuuColumnResizer {\n background-color: var(--columnResizer-color);\n cursor: col-resize;\n height: 100%;\n position: relative;\n width: 4px;\n}\n\n.vuuColumnResizer:hover {\n --columnResizer-color: var(--salt-color-blue-500);\n}\n\n.vuuColumnResizer:after {\n content: '';\n position: absolute;\n width: var(--columnResizer-width, 1px);\n top:0;\n bottom:0;\n right: -1px;\n background-color: var(--columnResizer-color, var(--salt-separable-tertiary-borderColor));\n height: var(--columnResizer-height, calc(100% + 1px));\n}", "\n.salt-theme {\n --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>');\n}\n\n.vuuTable-groupHeaderCell {\n --cell-align: 'flex-start';\n text-align: left;\n background: var(--dataTable-background);\n cursor: default;\n height: var(--vuuTableHeaderHeight);\n /* ensure header row sits atop everything else when scrolling down */\n }\n\n\n .vuuTable-groupHeaderCell-inner {\n align-items: center;\n display: flex;\n height: 100%;\n padding-left: 1px;\n }\n\n .vuuTable-groupHeaderCell-label {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n }\n\n .vuuTable-groupHeaderCell-col {\n align-items: center;\n background-color: inherit;\n display: inline-flex;\n flex: 0 1 auto;\n height: calc(var(--vuuTableHeaderHeight) - 2px);\n justify-content: space-between;\n padding-right: 8px;\n position: relative;\n }\n\n .vuuTable-groupHeaderCell-close {\n --vuu-icon-height: 18px;\n --vuu-icon-width: 18px;\n cursor: pointer;\n left: 3px;\n }\n\n .vuuTable-groupHeaderCell-col:nth-child(odd) {\n background-color: var(--salt-color-gray-50);\n }\n .vuuTable-groupHeaderCell-col:nth-child(even) {\n background-color: var(--salt-color-gray-40);\n }\n\n .vuuTable-groupHeaderCell-col:first-child {\n clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);\n padding-left: 3px;\n z-index: 1;\n }\n \n .vuuTable-groupHeaderCell-col:not(:first-child) {\n margin-left: -6px;\n padding-left: 12px;\n clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);\n }\n \n .vuuTable-groupHeaderCell-resizing {\n --columnResizer-color: var(--salt-color-blue-500);\n --columnResizer-height: var(--table-height);\n --columnResizer-width: 2px;\n }\n .vuuTable-groupHeaderCell-pending {\n --pending-content: '';\n }\n\n .vuuTable-groupHeaderCell-col:has(+ .vuuColumnResizer):after {\n content: var(--pending-content);\n width: 24px;\n height:24px;\n background-image: var(--svg-spinner);\n background-repeat: no-repeat;\n background-size: cover;\n }\n", ".vuuSortIndicator {\n --menu-icon-size: 18px;\n --menu-item-icon-color: black;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 18px;\n}\n\n.vuuSortPosition {\n font-size: 10px;\n line-height: 10px;\n text-align: center;\n}\n\n", "/* We support multi level headings up to a maximum of 4 heading levels */\n.vuuTable-heading:nth-child(2) {\n --heading-top: calc(var(--header-height));\n}\n.vuuTable-heading:nth-child(3) {\n --heading-top: calc(var(--header-height) * 2);\n}\n.vuuTable-heading:nth-child(3) {\n --heading-top: calc(var(--header-height) * 3);\n}\n\n.vuuTable-headingCell {\n background: var(--dataTable-background);\n border-color: var(--salt-separable-tertiary-borderColor);\n border-style: solid solid solid none;\n border-width: 1px;\n color: var(--salt-text-secondary-foreground);\n display: inline-block;\n height: var(--vuuTableHeaderHeight);\n padding: 0 !important;\n}\n\n.vuuTable-heading:has(+ .vuuTable-heading) > .vuuTable-headingCell {\n border-bottom-color: transparent;\n}\n\n[role=\"columnHeader\"] {\n --vuuTableCell-border-bottomColor: var(--salt-separable-tertiary-borderColor);\n --cell-align: 'flex-start';\n display: inline-block;\n text-align: left;\n background: var(--dataTable-background);\n border-right: 1px solid var(--vuuTableCell-border-rightColor);\n border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);\n color: var(--salt-text-secondary-foreground);\n cursor: default;\n height: var(--vuuTableHeaderHeight);\n padding: 0 !important;\n vertical-align: top;\n }\n\n .vuuTable-headerCell-right {\n --cell-align: flex-end;\n }\n \n .vuuTable-headerCell-inner {\n align-items: stretch;\n display: flex;\n height: 100%;\n padding: 0 0 0 3px;\n }\n\n .vuuTable-headerCell-inner:has(.vuuFilterIndicator){\n padding-left: 0;\n }\n\n .vuuTable-headerCell-label {\n align-items: center;\n justify-content: var(--cell-align);\n display: flex;\n flex: 1 1 auto;\n }\n\n .vuuTable-headerCell-resizing {\n --columnResizer-color: var(--salt-color-blue-500);\n --columnResizer-height: var(--table-height);\n --columnResizer-width: 2px;\n }\n\n [role='headerCell'].vuuPinLeft.vuuEndPin:after {\n box-shadow: 2px 0px 5px rgba(0,0,0,0.4);\n content: \"\";\n position: absolute;\n width: 1px;\n background-color: transparent;\n height: var(--table-height);\n top:0;\n right: 0px;\n }\n\n [role='headerCell'].vuuPinRight.vuuEndPin:after {\n box-shadow: -2px 0px 5px rgba(0,0,0,0.3);\n content: \"\";\n position: absolute;\n width: 1px;\n background-color: transparent;\n height: var(--table-height);\n top:0;\n left: 0px;\n }\n\n [role='headerCell']:is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {\n top:0;\n z-index: 20;\n }\n \n .saltDraggable-vuuTable-headerCell {\n --dataTable-background: ivory;\n --vuuTableHeaderHeight: 25px;\n }", ".vuuFilterIndicator {\n --menu-icon-size: 12px;\n --menu-item-icon-color: black;\n align-items: center;\n cursor: pointer;\n display: flex;\n flex: 0 0 18px;\n flex-direction: column;\n justify-content: center;\n position: relative;\n}\n\n.vuuFilterIndicator + .vuuTable-headerCell-inner {\n padding-left: 0;\n}\n", ".vuuTable-table {\n --vuuTable-rowHeight: var(--row-height);\n --vuuTableCell-border-bottomColor: transparent;\n --vuuTableCell-border-rightColor: var(--salt-separable-tertiary-borderColor);\n \n border-collapse: separate;\n border-spacing: 0;\n border-left: 1px solid #ccc;\n border: none;\n font-size: var(--vuuTable-font-size, 10px);\n margin: 0;\n min-height: 100%;\n width: var(--content-width);\n}\n \n.vuuTable-headers {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.vuuTable-body {\n height: var(--content-height);\n position: relative;\n}\n\n", "/**\n variables injected by Table component\n --content-height\n --content-width\n --header-height\n --horizontal-scrollbar-height\n --pinned-width-left\n --pinned-width-right\n --row-height\n --table-height\n --table-width\n --total-header-height\n --vertical-scrollbar-width\n --viewport-body-height\n*/\n.vuuTable {\n\n --dataTable-background: var(--salt-container-primary-background, inherit);\n --row-background-even: var(--dataTable-background);\n --row-background-odd: var(--dataTable-background);\n --table-background: var(--dataTable-background, none);\n\n background-color: var(--dataTable-background);\n position: relative;\n}\n\n.vuuTable-zebra {\n --row-background-even: var(--salt-container-secondary-background);\n}\n\n.vuuTable-scrollbarContainer {\n --scroll-content-width: calc(var(--content-width) - var(--pinned-width-left));\n border-bottom: none !important;\n border-top: none !important;\n border-left: solid 1px var(--salt-container-primary-borderColor);\n /* a top border */\n box-shadow: 0px -1px 0px 0px var(--salt-container-primary-borderColor);\n height: var(--viewport-body-height);\n left: var(--pinned-width-left);\n overflow: auto;\n position: absolute;\n top: var(--total-header-height);\n width: calc(var(--table-width) - var(--pinned-width-left) + 1px);\n}\n\n.vuuTable-scrollbarContent {\n height: calc(var(--content-height) + var(--horizontal-scrollbar-height));\n position: absolute;\n width: var(--scroll-content-width, var(--content-width));\n}\n\n.vuuTable-contentContainer {\n --vuuTableHeaderHeight: var(--header-height, 30px);\n\n background-color: var(--salt-container-primary-background);\n\n height: calc(var(--table-height) - var(--horizontal-scrollbar-height));\n position: relative;\n overflow: auto;\n overscroll-behavior: none;\n width: calc(var(--table-width) - var(--vertical-scrollbar-width));\n}\n\n.vuuTable-contentContainer::-webkit-scrollbar {\n display: none;\n}\n\n\n:is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {\n background-color: inherit;\n position: sticky;\n z-index: 1;\n}\n\n.vuuTable-settings {\n --saltButton-height: var(--header-height);\n --saltButton-width: 15px;\n position: absolute !important;\n right: 0;\n top: 0;\n}\n\n.vuuTable:has(.vuuTable-headerCell-resizing) * {\n cursor: col-resize;\n}\n\n", ".vuuTable-loading .vuuTable-table {\n --skeleton-height: 20px;\n --skeleton-width: calc(var(--content-width) - 8px);\n --skeleton-left: 4px;\n --skeleton-row-height: 16px;\n --skeleton-size: var(--skeleton-width) var(--skeleton-height);\n --skeleton-row: linear-gradient(\n var(--salt-color-gray-20-fade-background) var(--skeleton-row-height),\n transparent 0\n );\n --skeleton-background-image: var(--skeleton-row);\n \n background-image: var(--skeleton-background-image);\n background-repeat: repeat-y;\n background-size: var(--skeleton-size);\n background-position-x: var(--skeleton-left);\n background-position-y: 27px;\n }\n \n .vuuTable-loading .vuuTable-table {\n --skeleton-height: 20px;\n --skeleton-width: calc(var(--content-width) - 8px);\n --skeleton-left: 4px;\n --skeleton-row-height: 16px;\n --skeleton-size: var(--skeleton-width) var(--skeleton-height);\n --skeleton-row: linear-gradient(\n var(--salt-color-gray-20-fade-background) var(--skeleton-row-height),\n transparent 0\n );\n --skeleton-background-image: var(--skeleton-row);\n \n background-image: var(--skeleton-background-image);\n background-repeat: repeat-y;\n background-size: var(--skeleton-size);\n background-position-x: var(--skeleton-left);\n background-position-y: 27px;\n \n /* animation:linearAnim 2s infinite linear */\n }\n \n .vuuTable-loading .vuuTable-table:after {\n animation: shimmer 2s infinite;\n background: linear-gradient(\n 90deg, \n rgba(255,255,255, 0) 0, \n rgba(255,255,255, .2) 20%, \n rgba(255,255,255, .6) 60%, \n rgba(255,255,255, 0)\n );\n content: '';\n height: var(--table-height);\n left: 0px;\n position: absolute;\n transform: translateX(-100%);\n top: var(--header-height);\n width: var(--content-width);\n }\n \n @keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n }", ".vuuJsonCell-group {\n align-items: center;\n display: inline-flex;\n height: calc(var(--vuuTable-rowHeight) - 1px);\n width: 100%;\n}\n\n.vuuJsonCell-toggle {\n --vuu-icon-color: var(--salt-text-primary-foreground);\n --vuu-icon-height: calc(var(--vuuTable-rowHeight) - 1px);\n --vuu-icon-width: 18px;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.vuuJsonCell-name {\n font-weight: var(--salt-typography-fontWeight-semiBold); \n}\n\n.vuuJsonCell-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}"],
5
- "mappings": "AAAA,UACI,0BACA,iBAGJ,YACI,qBAGJ,iBACI,iBAGJ,kCACI,cAIJ,4BACI,iCACA,yBACA,4BAEA,6DACA,+DACA,0CACA,eACA,iCACA,kDACA,gBA7BJ,cA+BI,mBAIJ,uDAEI,iGACA,oDAEA,sDACA,mBAGJ,sDAEI,yCAGJ,yFACI,mCAIJ,4BAEI,kBACA,mBAIJ,gCACI,2BACA,qBACA,kBAGJ,sCACI,MACA,WACA,8DACA,OACA,0DACA,gGACA,wFACA,sBACA,8BACA,kBACA,yBACA,wDAGF,qHAGE,6CACA,sBACA,oBAGJ,sFAGI,4CACA,SACA,QAGJ,eACI,iBCnGJ,mBACI,qBACA,gEACA,uBAEA,mBACA,oBAGJ,0BACI,YACA,kBACA,0BAGJ,gCACI,qDACA,WACA,kBACA,MACA,YAEA,SACA,UAGJ,0BACI,0BACA,uCC5BF,aACE,0CACA,kBACA,MAGF,kBACE,6CAMF,aACE,uCAGF,sBACE,2CAGF,4BACE,oGACA,+EAOF,yBACE,+EC/BJ,kBACI,4CACA,kBACA,YACA,kBACA,UAGJ,wBACI,kDAGJ,wBACI,WACA,kBACA,sCACA,MACA,SACA,WACA,wFACA,qDCnBJ,YACC,4YAGD,0BACE,2BACE,gBACA,uCACA,eACA,mCAKF,gCACE,mBACA,aACA,YACA,iBAGF,gCACE,mBACA,aACA,cAGF,8BACE,mBACA,yBACA,oBACA,cACA,+CACA,8BACA,kBACA,kBAGF,gCACE,wBACA,uBACA,eACA,SAGF,6CACE,2CAEF,8CACE,2CAGF,0CACE,gFACA,iBACA,UAGF,gDACE,iBACA,kBACA,wFAGF,mCACE,kDACA,4CACA,2BAEF,kCACE,sBAGF,6DACE,+BACA,WACA,YACA,oCACA,4BACA,sBChFJ,kBACE,uBACA,8BACA,aACA,sBACA,kBACA,WAGF,iBACE,eACA,iBACA,kBCXF,+BACE,0CAEF,+BACE,8CAEF,+BACE,8CAGF,sBACE,uCACA,wDACA,oCACA,iBACA,4CACA,qBACA,mCAlBF,oBAsBA,iEACE,gCAGF,oBACE,8EACA,2BACA,qBACA,gBACE,uCACA,6DACA,+DACA,4CACA,eACA,mCApCJ,oBAsCI,mBAGF,2BACE,uBAGF,2BACE,oBACA,aACA,YAhDJ,kBAoDE,oDACE,eAGF,2BACE,mBACA,kCACA,aACA,cAGF,8BACE,kDACA,4CACA,2BAGF,6CACE,2BACA,WACA,kBACA,UACA,6BACA,2BACA,MACA,UAGF,8CACE,gCACA,WACA,kBACA,UACA,6BACA,2BACA,MACA,SAGF,+DACE,MACA,WAGF,mCACE,8BACA,6BClGJ,oBACE,uBACA,8BACA,mBACA,eACA,aACA,cACA,sBACA,uBACA,kBAGF,+CACE,eCbF,gBACI,wCACA,+CACA,6EAEA,yBACA,iBACA,2BACA,YACA,0CATJ,SAWI,gBACA,2BAGJ,kBACE,gBACA,MACA,UAGF,eACE,6BACA,kBCRF,UAEE,0EACA,mDACA,kDACA,sDAEA,6CACA,kBAGF,gBACE,kEAGF,6BACE,8EACA,6BACA,0BACA,gEAEA,gEACA,mCACA,8BACA,cACA,kBACA,+BACA,gEAGF,2BACE,wEACA,kBACA,wDAGF,2BACE,mDAEA,0DAEA,sEACA,kBACA,cACA,yBACA,iEAGF,8CACE,aAIF,8CACE,yBACA,gBACA,UAGF,mBACE,0CACA,yBACA,4BACA,QACA,MAGF,+CACE,kBCnFF,kCACI,wBACA,mDACA,qBACA,4BACA,8DACA,uHAIA,iDAEA,kDACA,2BACA,qCACA,2CACA,2BAwBF,wCACE,8BACA,8HAOA,WACA,2BACA,SACA,kBACA,2BACA,yBACA,2BAGF,sBAEI,2BC5DN,mBACI,mBACA,oBACA,6CACA,WAGJ,oBACI,sDACA,yDACA,uBACA,cACA,iBAGJ,kBACM,uDAGN,mBACI,gBACA",
5
+ "mappings": ";AAAA;AACI;AACA;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AAAA;AAIJ;AACI;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAIJ;AAAA;AAEI;AACA;AAEA;AACA;AAAA;AAGJ;AAEI;AAAA;AAGJ;AACI;AAAA;AAIJ;AAEI;AACA;AAAA;AAIJ;AACI;AACA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAAA;AAGE;AACA;AACA;AAAA;AAGJ;AAAA;AAGI;AACA;AACA;AAAA;AAGJ;AACI;AAAA;;;ACnGJ;AACI;AACA;AACA;AAEA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAGJ;AACI;AACA;AAAA;;;AC5BF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAMF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAOF;AACE;AAAA;;;AC/BJ;AACI;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;ACnBJ;AACC;AAAA;AAGD;AACE;AACE;AACA;AACA;AACA;AAAA;AAKF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAEF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;;;AChFJ;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;;;ACXF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;AClGJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;;;ACbF;AACI;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;ACRF;AAEE;AACA;AACA;AACA;AAEA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAEA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;;;ACnFF;AACI;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAKF;AACE;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAEI;AAAA;AAAA;;;AC5DN;AACI;AACA;AACA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACM;AAAA;AAGN;AACI;AACA;AAAA;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@vuu-ui/vuu-table",
3
- "version": "0.7.2",
3
+ "version": "0.7.3-debug",
4
4
  "author": "heswell",
5
5
  "license": "Apache-2.0",
6
6
  "dependencies": {
7
7
  "@salt-ds/core": "1.2.0",
8
8
  "@salt-ds/icons": "1.1.0",
9
9
  "@heswell/salt-lab": "1.0.0-alpha.2",
10
- "@vuu-ui/vuu-data": "0.7.2",
11
- "@vuu-ui/vuu-filters": "0.7.2",
12
- "@vuu-ui/vuu-popups": "0.7.2",
13
- "@vuu-ui/vuu-utils": "0.7.2"
10
+ "@vuu-ui/vuu-data": "0.7.3-debug",
11
+ "@vuu-ui/vuu-filters": "0.7.3-debug",
12
+ "@vuu-ui/vuu-popups": "0.7.3-debug",
13
+ "@vuu-ui/vuu-utils": "0.7.3-debug"
14
14
  },
15
15
  "peerDependencies": {
16
16
  "classnames": "^2.2.6",
@@ -1,9 +1,10 @@
1
1
  import { ColumnDescriptor, GridConfig, KeyedColumnDescriptor, PinLocation } from "@vuu-ui/vuu-datagrid-types";
2
2
  import { Reducer } from "react";
3
- import { VuuColumnDataType } from "@vuu-ui/vuu-protocol-types";
4
3
  import { DataSourceConfig } from "@vuu-ui/vuu-data";
5
- export interface GridModel extends Omit<GridConfig, "columns"> {
4
+ import { TableSchema } from "@vuu-ui/vuu-data/src/message-utils";
5
+ export interface TableModel extends Omit<GridConfig, "columns"> {
6
6
  columns: KeyedColumnDescriptor[];
7
+ tableSchema?: Readonly<TableSchema>;
7
8
  }
8
9
  export interface ColumnActionInit {
9
10
  type: "init";
@@ -35,10 +36,9 @@ export interface ColumnActionResize {
35
36
  phase: "begin" | "resize" | "end";
36
37
  width?: number;
37
38
  }
38
- export interface ColumnActionSetTypes {
39
- type: "setTypes";
40
- columnNames: string[];
41
- serverDataTypes: VuuColumnDataType[];
39
+ export interface ColumnActionSetTableSchema {
40
+ type: "setTableSchema";
41
+ tableSchema: TableSchema;
42
42
  }
43
43
  export interface ColumnActionUpdate {
44
44
  type: "updateColumn";
@@ -61,8 +61,8 @@ export interface ColumnActionTableConfig extends DataSourceConfig {
61
61
  * PersistentColumnActions are those actions that require us to persist user changes across sessions
62
62
  */
63
63
  export type PersistentColumnAction = ColumnActionPin | ColumnActionHide;
64
- export type GridModelAction = ColumnActionHide | ColumnActionInit | ColumnActionMove | ColumnActionPin | ColumnActionResize | ColumnActionSetTypes | ColumnActionShow | ColumnActionUpdate | ColumnActionUpdateProp | ColumnActionTableConfig;
65
- export type GridModelReducer = Reducer<GridModel, GridModelAction>;
64
+ export type GridModelAction = ColumnActionHide | ColumnActionInit | ColumnActionMove | ColumnActionPin | ColumnActionResize | ColumnActionSetTableSchema | ColumnActionShow | ColumnActionUpdate | ColumnActionUpdateProp | ColumnActionTableConfig;
65
+ export type GridModelReducer = Reducer<TableModel, GridModelAction>;
66
66
  export type ColumnActionDispatch = (action: GridModelAction) => void;
67
67
  export declare const useTableModel: (tableConfig: Omit<GridConfig, "headings">, dataSourceConfig?: DataSourceConfig) => {
68
68
  columns: KeyedColumnDescriptor[];