@vuu-ui/vuu-ui-controls 0.8.7-debug → 0.8.8-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 (47) hide show
  1. package/cjs/index.js +3790 -5243
  2. package/cjs/index.js.map +4 -4
  3. package/esm/index.js +3793 -5288
  4. package/esm/index.js.map +4 -4
  5. package/index.css +206 -577
  6. package/index.css.map +3 -3
  7. package/package.json +7 -6
  8. package/types/common-hooks/index.d.ts +1 -0
  9. package/types/{tree → common-hooks}/use-resize-observer.d.ts +1 -0
  10. package/types/drag-drop/drop-target-utils.d.ts +10 -1
  11. package/types/drag-drop/index.d.ts +1 -0
  12. package/types/index.d.ts +1 -0
  13. package/types/list/CheckboxIcon.d.ts +6 -0
  14. package/types/list/Highlighter.d.ts +7 -0
  15. package/types/list/List.d.ts +7 -0
  16. package/types/list/ListItem.d.ts +5 -0
  17. package/types/list/ListItemGroup.d.ts +6 -0
  18. package/types/list/ListItemHeader.d.ts +5 -0
  19. package/types/list/VirtualizedList.d.ts +7 -0
  20. package/types/list/common-hooks/collectionProvider.d.ts +13 -0
  21. package/types/list/common-hooks/collectionTypes.d.ts +56 -0
  22. package/types/list/common-hooks/index.d.ts +15 -0
  23. package/types/list/common-hooks/itemToString.d.ts +2 -0
  24. package/types/list/common-hooks/keyUtils.d.ts +15 -0
  25. package/types/list/common-hooks/list-dom-utils.d.ts +6 -0
  26. package/types/list/common-hooks/navigationTypes.d.ts +37 -0
  27. package/types/list/common-hooks/selectionTypes.d.ts +42 -0
  28. package/types/list/common-hooks/useCollapsibleGroups.d.ts +14 -0
  29. package/types/list/common-hooks/useCollectionItems.d.ts +2 -0
  30. package/types/list/common-hooks/useImperativeScrollingAPI.d.ts +14 -0
  31. package/types/list/common-hooks/useKeyboardNavigation.d.ts +4 -0
  32. package/types/list/common-hooks/useSelection.d.ts +8 -0
  33. package/types/list/common-hooks/useTypeahead.d.ts +15 -0
  34. package/types/list/common-hooks/useViewportTracking.d.ts +14 -0
  35. package/types/list/common-hooks/utils/collection-item-utils.d.ts +21 -0
  36. package/types/list/common-hooks/utils/filter-utils.d.ts +4 -0
  37. package/types/list/common-hooks/utils/index.d.ts +3 -0
  38. package/types/list/common-hooks/utils/isSelected.d.ts +2 -0
  39. package/types/list/index.d.ts +8 -0
  40. package/types/list/keyset.d.ts +9 -0
  41. package/types/list/listTypes.d.ts +206 -0
  42. package/types/list/useList.d.ts +3 -0
  43. package/types/list/useListHeight.d.ts +19 -0
  44. package/types/list/useScrollPosition.d.ts +19 -0
  45. package/types/list/useVirtualization.d.ts +15 -0
  46. package/types/utils/escapeRegExp.d.ts +1 -0
  47. package/types/utils/index.d.ts +1 -0
package/index.css CHANGED
@@ -1,575 +1,3 @@
1
- /* ../vuu-shell/src/connection-status/ConnectionStatusIcon.css */
2
- .vuuStatus-container {
3
- display: flex;
4
- }
5
- .vuuStatus-text {
6
- align-self: center;
7
- }
8
- .vuuStatus {
9
- --vuu-icon-height: 18px;
10
- --vuu-icon-padding: var(--vuuStatus-padding, 6px);
11
- --vuu-icon-width: var(--vuuStatus-width, auto);
12
- --vuu-icon-min-width: var(--vuuStatus-min-width, 20px);
13
- align-items: center;
14
- display: inline-flex;
15
- height: var(--vuu-icon-height);
16
- justify-content: center;
17
- min-width: var(--vuu-icon-min-width);
18
- padding: 0 var(--vuu-icon-padding);
19
- width: var(--vuu-icon-width);
20
- position: relative;
21
- }
22
- .vuuStatus[data-icon]::after {
23
- inset: 0 0 0 0;
24
- content: "";
25
- box-shadow: 0 0 0 0 black;
26
- position: absolute;
27
- mask: var(--vuu-icon-svg) center center/20px 20px no-repeat;
28
- -webkit-mask: var(--vuu-icon-svg) center center/20px 20px no-repeat;
29
- }
30
- .vuuActiveStatus::after {
31
- --vuu-icon-svg: var(--svg-active-status);
32
- background-color: rgb(0, 255, 0);
33
- }
34
- .vuuConnectingStatus::after {
35
- --vuu-icon-svg: var(--svg-connecting-status);
36
- background-color: orange;
37
- transform: scale(1);
38
- animation: infinite pulse 1s;
39
- }
40
- .vuuDisconnectedStatus::after {
41
- --vuu-icon-svg: var(--svg-disconnected-status);
42
- background-color: red;
43
- transform: scale(1);
44
- animation: infinite pulse 0.5s;
45
- }
46
- @keyframes pulse {
47
- 0% {
48
- transform: scale(0.95);
49
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
50
- }
51
- 70% {
52
- transform: scale(1);
53
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
54
- }
55
- 100% {
56
- transform: scale(0.95);
57
- box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
58
- }
59
- }
60
-
61
- /* ../vuu-shell/src/layout-management/SaveLayoutPanel.css */
62
- .vuuSaveLayoutPanel {
63
- background-color: aqua;
64
- height: 400px;
65
- width: 600px;
66
- }
67
-
68
- /* ../vuu-shell/src/left-nav/LeftNav.css */
69
- .vuuLeftNav {
70
- --salt-navigable-fontWeight-active: 700;
71
- --vuuTab-background-selected: rgba(255, 255, 255, 0.10);
72
- --vuuTab-hover-background: rgba(255, 255, 255, 0.10);
73
- --vuuTab-before-content: none;
74
- --vuuTab-borderRadius: 6px;
75
- --vuuTab-height: 40px;
76
- --vuuTab-padding: 0 0 0 48px;
77
- --vuuTabstrip-fontWeight: 700;
78
- --vuuTabstrip-width: 100%;
79
- --svg-demo: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M11.3333 11C11.52 11 11.6667 10.8533 11.6667 10.6667C11.6667 10.48 11.52 10.3333 11.3333 10.3333C11.1467 10.3333 11 10.48 11 10.6667C11 10.8533 11.1467 11 11.3333 11Z"/><path d="M5.99999 8.66667C6.36818 8.66667 6.66666 8.36819 6.66666 8C6.66666 7.63181 6.36818 7.33334 5.99999 7.33334C5.63181 7.33334 5.33333 7.63181 5.33333 8C5.33333 8.36819 5.63181 8.66667 5.99999 8.66667Z"/><path d="M8.66667 6C9.03486 6 9.33333 5.70152 9.33333 5.33333C9.33333 4.96514 9.03486 4.66667 8.66667 4.66667C8.29848 4.66667 8 4.96514 8 5.33333C8 5.70152 8.29848 6 8.66667 6Z"/><path d="M8.66667 11.3333C9.03486 11.3333 9.33333 11.0349 9.33333 10.6667C9.33333 10.2985 9.03486 10 8.66667 10C8.29848 10 8 10.2985 8 10.6667C8 11.0349 8.29848 11.3333 8.66667 11.3333Z"/><path d="M11.3333 8.33333C11.52 8.33333 11.6667 8.18666 11.6667 8C11.6667 7.81333 11.52 7.66666 11.3333 7.66666C11.1467 7.66666 11 7.81333 11 8C11 8.18666 11.1467 8.33333 11.3333 8.33333Z"/><path d="M8.66667 8.66667C9.03486 8.66667 9.33333 8.36819 9.33333 8C9.33333 7.63181 9.03486 7.33334 8.66667 7.33334C8.29848 7.33334 8 7.63181 8 8C8 8.36819 8.29848 8.66667 8.66667 8.66667Z"/><path d="M2 2H14V3.33333H2V2Z"/><path d="M3.33333 6.33333C3.88561 6.33333 4.33333 5.88562 4.33333 5.33333C4.33333 4.78105 3.88561 4.33333 3.33333 4.33333C2.78104 4.33333 2.33333 4.78105 2.33333 5.33333C2.33333 5.88562 2.78104 6.33333 3.33333 6.33333Z"/><path d="M3.33333 9C3.88561 9 4.33333 8.55228 4.33333 8C4.33333 7.44772 3.88561 7 3.33333 7C2.78104 7 2.33333 7.44772 2.33333 8C2.33333 8.55228 2.78104 9 3.33333 9Z"/><path d="M3.33333 11.6667C3.88561 11.6667 4.33333 11.2189 4.33333 10.6667C4.33333 10.1144 3.88561 9.66666 3.33333 9.66666C2.78104 9.66666 2.33333 10.1144 2.33333 10.6667C2.33333 11.2189 2.78104 11.6667 3.33333 11.6667Z"/><path d="M11.3333 5.66667C11.52 5.66667 11.6667 5.52 11.6667 5.33333C11.6667 5.14667 11.52 5 11.3333 5C11.1467 5 11 5.14667 11 5.33333C11 5.52 11.1467 5.66667 11.3333 5.66667Z"/><path d="M5.99999 11.3333C6.36818 11.3333 6.66666 11.0349 6.66666 10.6667C6.66666 10.2985 6.36818 10 5.99999 10C5.63181 10 5.33333 10.2985 5.33333 10.6667C5.33333 11.0349 5.63181 11.3333 5.99999 11.3333Z"/><path d="M5.99999 6C6.36818 6 6.66666 5.70152 6.66666 5.33333C6.66666 4.96514 6.36818 4.66667 5.99999 4.66667C5.63181 4.66667 5.33333 4.96514 5.33333 5.33333C5.33333 5.70152 5.63181 6 5.99999 6Z"/><path d="M2 12.6667H14V14H2V12.6667Z"/></svg>');
80
- --svg-tables: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2 6H4.66667V3.33334H3.33333C2.6 3.33334 2 3.93334 2 4.66667V6ZM2 9.33334H4.66667V6.66667H2V9.33334ZM5.33333 9.33334H8V6.66667H5.33333V9.33334ZM8.66667 9.33334H11.3333V6.66667H8.66667V9.33334ZM5.33333 6H8V3.33334H5.33333V6ZM8.66667 3.33334V6H11.3333V3.33334H8.66667ZM12 9.33334H14.6667V6.66667H12V9.33334ZM3.33333 12.6667H4.66667V10H2V11.3333C2 12.0667 2.6 12.6667 3.33333 12.6667ZM5.33333 12.6667H8V10H5.33333V12.6667ZM8.66667 12.6667H11.3333V10H8.66667V12.6667ZM12 12.6667H13.3333C14.0667 12.6667 14.6667 12.0667 14.6667 11.3333V10H12V12.6667ZM12 3.33334V6H14.6667V4.66667C14.6667 3.93334 14.0667 3.33334 13.3333 3.33334H12Z"/></svg>');
81
- --svg-templates: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M15.3333 12.6667H14L14 3.33334H15.3333L15.3333 12.6667ZM12.6667 12.6667H11.3333L11.3333 3.33334H12.6667L12.6667 12.6667ZM1.33333 12.6667L9.33333 12.6667C9.69999 12.6667 9.99999 12.3667 9.99999 12V4.00001C9.99999 3.63334 9.69999 3.33334 9.33333 3.33334L1.33333 3.33334C0.966661 3.33334 0.666661 3.63334 0.666661 4.00001L0.666661 12C0.666661 12.3667 0.966661 12.6667 1.33333 12.6667ZM1.99999 4.66667L8.66666 4.66667V11.3333L1.99999 11.3333L1.99999 4.66667Z"/></svg>');
82
- --svg-layouts: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M15.3333 10H14V11.3333H15.3333V10ZM15.3333 12.6667H14V14H15.3333V12.6667ZM15.3333 7.33333H14V8.66667H15.3333V7.33333ZM10 2H8.66667V3.33333H10V2ZM15.3333 4.66667H14V6H15.3333V4.66667ZM0.666672 14H7.33334V10H0.666672V14ZM2.00001 4.66667H0.666672V6H2.00001V4.66667ZM10 12.6667H8.66667V14H10V12.6667ZM12.6667 2H11.3333V3.33333H12.6667V2ZM15.3333 2H14V3.33333H15.3333V2ZM12.6667 12.6667H11.3333V14H12.6667V12.6667ZM2.00001 7.33333H0.666672V8.66667H2.00001V7.33333ZM7.33334 2H6.00001V3.33333H7.33334V2ZM4.66667 2H3.33334V3.33333H4.66667V2ZM2.00001 2H0.666672V3.33333H2.00001V2Z"/></svg>');
83
- --vuu-light-text-primary: #15171b;
84
- display: flex;
85
- transition: width .3s ease-in-out;
86
- }
87
- .vuuLeftNav-menu-full {
88
- --menu-width: var(--nav-menu-expanded-width);
89
- }
90
- .vuuLeftNav-menu-icons {
91
- --menu-width: var(--nav-menu-collapsed-width);
92
- }
93
- .vuuLeftNav-menu-content {
94
- --menu-width: var(--nav-menu-collapsed-width);
95
- }
96
- .vuuLeftNav-menu-content .vuuLeftNav-menu-secondary {
97
- display: block;
98
- }
99
- .vuuLeftNav-menu-primary {
100
- background-color: #2A015F;
101
- container-type: inline-size;
102
- display: flex;
103
- flex-direction: column;
104
- height: 100%;
105
- padding: 32px 16px;
106
- transition: width ease .3s;
107
- width: var(--menu-width, 100%);
108
- }
109
- .vuuLeftNav-menu-secondary {
110
- flex: 1 1 auto;
111
- height: 100%;
112
- display: none;
113
- }
114
- .vuuLeftNav .vuuTabstrip {
115
- margin-top: 102px;
116
- }
117
- .vuuLeftNav .vuuTab {
118
- --vuuTab-focusVisible-color: pink;
119
- --vuu-icon-color: white;
120
- --vuu-icon-left: 12px;
121
- --vuu-icon-size: 16px;
122
- border-left: solid 4px transparent;
123
- }
124
- .vuuLeftNav .vuuTab-selected {
125
- --vuu-icon-color: var(--salt-navigable-indicator-active);
126
- border-left: solid 4px var(--salt-navigable-indicator-active);
127
- }
128
- .vuuLeftNav-logo {
129
- display: flex;
130
- flex: 0 0 auto;
131
- justify-content: center;
132
- }
133
- .vuuLeftNav-main {
134
- flex: 1 1 auto;
135
- }
136
- .vuuLeftNav-menu {
137
- color: white;
138
- margin-top: 102px;
139
- padding: 0;
140
- }
141
- .vuuLeftNav [data-icon=demo] {
142
- --vuu-icon-svg: var(--svg-demo);
143
- }
144
- .vuuLeftNav [data-icon=tables] {
145
- --vuu-icon-svg: var(--svg-tables);
146
- }
147
- .vuuLeftNav [data-icon=templates] {
148
- --vuu-icon-svg: var(--svg-templates);
149
- }
150
- .vuuLeftNav [data-icon=layouts] {
151
- --vuu-icon-svg: var(--svg-layouts);
152
- }
153
- @container (max-width: 100px) {
154
- .vuuTab {
155
- --vuuTab-padding: 0 0 0 42px;
156
- }
157
- .vuuTab-main {
158
- display: none !important;
159
- }
160
- }
161
- .vuuLeftNav-buttonBar {
162
- align-items: center;
163
- display: flex;
164
- flex: 0 0 100px;
165
- justify-content: center;
166
- }
167
- .vuuLeftNav-toggleButton {
168
- --vuu-icon-color: var(--vuu-light-text-primary);
169
- --vuu-icon-left: 11px;
170
- --vuu-icon-top: 10px;
171
- --vuu-icon-size: 16px;
172
- background-color: var(--salt-navigable-indicator-active);
173
- border-width: 0;
174
- border-radius: 18px;
175
- height: 36px;
176
- position: relative;
177
- width: 36px;
178
- }
179
- .vuuLeftNav-toggleButton-open {
180
- --vuu-icon-left: 9px;
181
- }
182
-
183
- /* ../vuu-shell/src/login/LoginPanel.css */
184
- .vuuLoginPanel {
185
- --hwTextInput-border: solid 1px #ccc;
186
- --hwTextInput-height: 28px;
187
- --hwTextInput-padding: 0 12px;
188
- --hwTextInput-width: 100%;
189
- --login-row-height: 60px;
190
- align-content: center;
191
- align-items: center;
192
- border: solid 1px lightgray;
193
- display: flex;
194
- flex-direction: column;
195
- gap: 24px;
196
- justify-content: center;
197
- justify-items: center;
198
- margin: 0 auto;
199
- padding: 48px 48px 24px 48px;
200
- width: fit-content;
201
- }
202
- .vuuLoginPanel-login {
203
- grid-column: 2/3;
204
- align-self: end;
205
- justify-self: end;
206
- }
207
-
208
- /* ../vuu-shell/src/session-editing-form/SessionEditingForm.css */
209
- .vuuSessionEditingForm {
210
- display: flex;
211
- flex-direction: column;
212
- gap: 3px;
213
- min-width: 400px;
214
- padding: 6px;
215
- }
216
- .vuuSessionEditingForm-content {
217
- display: flex;
218
- flex-direction: column;
219
- flex: 1 1 auto;
220
- gap: 3px;
221
- overflow: auto;
222
- }
223
- .vuuSessionEditingForm-field {
224
- align-items: center;
225
- display: flex;
226
- height: 32px;
227
- }
228
- .vuuSessionEditingForm-fieldLabel {
229
- flex: 0 0 50%;
230
- }
231
- .vuuSessionEditingForm-fieldValue {
232
- max-width: 50%;
233
- }
234
- .vuuSessionEditingForm-fieldValue.vuuReadOnly {
235
- font-weight: var(--salt-text-label-fontWeight-strong);
236
- }
237
- .vuuSessionEditingForm-buttonbar {
238
- align-items: center;
239
- border-top: solid 1px var(--salt-container-primary-borderColor);
240
- display: flex;
241
- justify-content: flex-end;
242
- flex: 0 0 autox;
243
- gap: 6px;
244
- padding-top: 6px;
245
- }
246
- .vuuSessionEditingForm-errorBanner {
247
- --vuu-icon-left: 3px;
248
- --vuu-icon-size: 18px;
249
- --vuu-icon-top: 3px;
250
- border: solid 1px var(--salt-status-error-borderColor);
251
- line-height: 24px;
252
- padding: 0 6px 0 26px;
253
- position: relative;
254
- }
255
-
256
- /* ../vuu-shell/src/user-profile/UserPanel.css */
257
- .vuuUserPanel {
258
- background-color: white;
259
- display: flex;
260
- flex-direction: column;
261
- max-height: 400px;
262
- padding: 12px;
263
- }
264
- vuuUserPanel-history {
265
- flex: 1 1 auto;
266
- }
267
- .vuuUserPanel-buttonBar {
268
- --saltButton-width: 100%;
269
- align-items: flex-end;
270
- border-top: 1px solid var(--surface3);
271
- display: flex;
272
- flex: 0 0 32px;
273
- justify-content: flex-start;
274
- }
275
- .btn-logout {
276
- --hwButton-icon-left: 12px;
277
- --hwButton-padding: 0 6px 0 24px;
278
- padding-left: 24px;
279
- }
280
-
281
- /* ../vuu-shell/src/user-profile/UserProfile.css */
282
- .vuuUserProfile {
283
- --svg-icon: var(--svg-user);
284
- }
285
-
286
- /* ../vuu-shell/src/theme-switch/ThemeSwitch.css */
287
- .vuuThemeSwitch {
288
- --saltButton-minWidth: 22px;
289
- --svg-light: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M24 31q2.9 0 4.95-2.05Q31 26.9 31 24q0-2.9-2.05-4.95Q26.9 17 24 17q-2.9 0-4.95 2.05Q17 21.1 17 24q0 2.9 2.05 4.95Q21.1 31 24 31Zm0 3q-4.15 0-7.075-2.925T14 24q0-4.15 2.925-7.075T24 14q4.15 0 7.075 2.925T34 24q0 4.15-2.925 7.075T24 34ZM3.5 25.5q-.65 0-1.075-.425Q2 24.65 2 24q0-.65.425-1.075Q2.85 22.5 3.5 22.5h5q.65 0 1.075.425Q10 23.35 10 24q0 .65-.425 1.075-.425.425-1.075.425Zm36 0q-.65 0-1.075-.425Q38 24.65 38 24q0-.65.425-1.075.425-.425 1.075-.425h5q.65 0 1.075.425Q46 23.35 46 24q0 .65-.425 1.075-.425.425-1.075.425ZM24 10q-.65 0-1.075-.425Q22.5 9.15 22.5 8.5v-5q0-.65.425-1.075Q23.35 2 24 2q.65 0 1.075.425.425.425.425 1.075v5q0 .65-.425 1.075Q24.65 10 24 10Zm0 36q-.65 0-1.075-.425-.425-.425-.425-1.075v-5q0-.65.425-1.075Q23.35 38 24 38q.65 0 1.075.425.425.425.425 1.075v5q0 .65-.425 1.075Q24.65 46 24 46ZM12 14.1l-2.85-2.8q-.45-.45-.425-1.075.025-.625.425-1.075.45-.45 1.075-.45t1.075.45L14.1 12q.4.45.4 1.05 0 .6-.4 1-.4.45-1.025.45-.625 0-1.075-.4Zm24.7 24.75L33.9 36q-.4-.45-.4-1.075t.45-1.025q.4-.45 1-.45t1.05.45l2.85 2.8q.45.45.425 1.075-.025.625-.425 1.075-.45.45-1.075.45t-1.075-.45ZM33.9 14.1q-.45-.45-.45-1.05 0-.6.45-1.05l2.8-2.85q.45-.45 1.075-.425.625.025 1.075.425.45.45.45 1.075t-.45 1.075L36 14.1q-.4.4-1.025.4-.625 0-1.075-.4ZM9.15 38.85q-.45-.45-.45-1.075t.45-1.075L12 33.9q.45-.45 1.05-.45.6 0 1.05.45.45.45.45 1.05 0 .6-.45 1.05l-2.8 2.85q-.45.45-1.075.425-.625-.025-1.075-.425ZM24 24Z"/></svg>');
290
- --svg-dark: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M24 42q-7.5 0-12.75-5.25T6 24q0-7.5 5.25-12.75T24 6q.4 0 .85.025.45.025 1.15.075-1.8 1.6-2.8 3.95-1 2.35-1 4.95 0 4.5 3.15 7.65Q28.5 25.8 33 25.8q2.6 0 4.95-.925T41.9 22.3q.05.6.075.975Q42 23.65 42 24q0 7.5-5.25 12.75T24 42Zm0-3q5.45 0 9.5-3.375t5.05-7.925q-1.25.55-2.675.825Q34.45 28.8 33 28.8q-5.75 0-9.775-4.025T19.2 15q0-1.2.25-2.575.25-1.375.9-3.125-4.9 1.35-8.125 5.475Q9 18.9 9 24q0 6.25 4.375 10.625T24 39Zm-.2-14.85Z"/></svg>');
291
- padding: 2px;
292
- }
293
- .salt-density-high .vuuThemeSwitch {
294
- --saltButton-minWidth: 16px;
295
- --saltButton-width: 18px;
296
- --vuuThemeSwitch-iconSize: 16px;
297
- }
298
- .vuuThemeSwitch [data-icon] {
299
- --vuu-icon-size: var(--vuuThemeSwitch-iconSize,18px);
300
- }
301
- .vuuThemeSwitch [data-icon=light] {
302
- --vuu-icon-svg: var(--svg-light);
303
- }
304
- .vuuThemeSwitch [data-icon=dark] {
305
- --vuu-icon-svg: var(--svg-dark);
306
- }
307
- .vuuThemeSwitch .saltToggleButton {
308
- height: 20px;
309
- width: 20px;
310
- }
311
-
312
- /* ../vuu-shell/src/app-header/AppHeader.css */
313
- .vuuAppHeader {
314
- align-items: center;
315
- border-bottom: solid 1px var(--salt-container-secondary-borderColor);
316
- display: flex;
317
- height: 40px;
318
- justify-content: flex-end;
319
- }
320
- .vuu-theme .vuuAppHeader {
321
- border-radius: 8px;
322
- border: 1px solid #D6D7DA;
323
- height: 44px;
324
- margin-bottom: 8px;
325
- }
326
-
327
- /* ../vuu-shell/src/shell-layouts/context-panel/ContextPanel.css */
328
- .vuuContextPanel {
329
- position: relative;
330
- transition: width .3s ease-in-out;
331
- width: var(--vuu-side-panel-width, 0px) !important;
332
- z-index: 1;
333
- }
334
- .vuuContextPanel-expanded {
335
- --vuu-side-panel-width: 300px !important;
336
- --vuu-side-panel-shadow: -4px 4px 4px rgba(0, 0, 0, 0.1);
337
- --vuu-side-panel-padding: 24px;
338
- }
339
- .vuuContextPanel-overlay {
340
- width: 0px !important;
341
- }
342
- .vuuContextPanel-inner {
343
- background-color: var(--salt-container-primary-background);
344
- box-shadow: var(--vuu-side-panel-shadow, none);
345
- height: 100%;
346
- padding-bottom: 24px;
347
- padding-top: 24px;
348
- padding-left: var(--vuu-side-panel-padding, 0);
349
- padding-right: var(--vuu-side-panel-padding, 0);
350
- position: absolute;
351
- right: 0;
352
- top: 0;
353
- transition-property:
354
- padding-left,
355
- padding-right,
356
- width;
357
- transition-duration: .3s;
358
- transition-timing-function: ease-in-out;
359
- width: var(--vuu-side-panel-width, 0px);
360
- }
361
- .vuuContextPanel-header {
362
- align-items: center;
363
- display: flex;
364
- flex-wrap: nowrap;
365
- height: 27px;
366
- justify-content: space-between;
367
- }
368
- .vuuContextPanel-title {
369
- font-size: 20px;
370
- font-weight: 700;
371
- white-space: nowrap;
372
- }
373
-
374
- /* ../vuu-shell/src/shell.css */
375
- .vuuShell {
376
- background-color: var(--salt-container-primary-background, ivory);
377
- height: var(--vuuShell-height, 100vh);
378
- width: var(--vuuShell-width, 100vw);
379
- }
380
- .vuuShell-palette {
381
- --vuuView-border: none;
382
- --vuuView-margin: 0;
383
- }
384
- .vuuShell-warningPlaceholder {
385
- background-color: var(--salt-container-background-high);
386
- height: 100%;
387
- }
388
-
389
- /* ../vuu-popups/src/dialog/Dialog.css */
390
- .vuuDialog {
391
- background: var(--salt-container-primary-background);
392
- border: var(--vuuDialog-border, solid 1px #ccc);
393
- border-radius: 5px;
394
- padding: var(--vuuDialog-padding, 0);
395
- box-shadow: var(--salt-overlayable-shadow, none);
396
- height: var(--vuuDialog-height, fit-content);
397
- width: var(--vuuDialog-width, fit-content);
398
- }
399
- .vuuDialog-header {
400
- --saltButton-height: 28px;
401
- --saltButton-width: 28px;
402
- --saltToolbar-background: transparent;
403
- --saltToolbar-height: calc(var(--salt-size-base) + 5px);
404
- border-bottom: solid 1px var(--salt-container-primary-borderColor);
405
- }
406
- .vuuDialog-header > .Responsive-inner {
407
- align-items: center;
408
- }
409
- .vuuDialog-header > .Responsive-inner > :last-child {
410
- right: 2px;
411
- }
412
-
413
- /* ../vuu-popups/src/menu/MenuList.css */
414
- .vuuMenuList {
415
- --context-menu-color: var(--vuuMenuList-color,#161616);
416
- --context-menu-padding: var(--hw-list-item-padding, 0 6px);
417
- --context-menu-shadow: var(--hw-dialog-shadow, 0 6px 12px rgba(0, 0, 0, 0.175));
418
- --focus-visible-border-color: var(--hw-focus-visible-border-color, rgb(141, 154, 179));
419
- --context-menu-highlight-bg: #a4d5f4;
420
- --context-menu-blur-focus-bg: #e0e4e9;
421
- --menu-item-icon-color: black;
422
- --menu-item-twisty-color: black;
423
- --menu-item-twisty-content: "";
424
- --menu-item-twisty-top: 50%;
425
- --menu-item-twisty-left: auto;
426
- --menu-item-twisty-right: 0px;
427
- --menu-icon-size: 12px;
428
- background-clip: padding-box;
429
- background-color: white;
430
- border-radius: 4px;
431
- border: solid 1px var(--vuuMenuList-borderColor, rgba(0, 0, 0, 0.15));
432
- box-shadow: var(--context-menu-shadow);
433
- font-size: var(--vuuMenuList-fontSize, var(--salt-text-label-fontSize));
434
- font-weight: var(--salt-typography-fontWeight-semiBold);
435
- list-style: none;
436
- margin: 2px 0 0;
437
- outline: 0;
438
- overflow: hidden;
439
- padding: var(--vuuMenuList-padding, 0);
440
- position: absolute;
441
- }
442
- .vuuMenuItem {
443
- align-items: center;
444
- border-width: 1px;
445
- border-color: var(--vuuMenuItem-borderColor, transparent);
446
- border-style: var(--vuuMenuItem-borderStyle, none);
447
- color: var(--context-menu-color);
448
- display: flex;
449
- gap: 6px;
450
- height: var(--vuuMenuItem-height, var(--hw-list-item-height, 24px));
451
- padding: var(--context-menu-padding);
452
- padding-right: 24px;
453
- position: relative;
454
- white-space: nowrap;
455
- }
456
- .vuuIconContainer {
457
- display: inline-block;
458
- flex: 12px 0 0;
459
- height: var(--menu-icon-size);
460
- mask-repeat: no-repeat;
461
- width: var(--menu-icon-size);
462
- }
463
- .vuuMenuItem[aria-expanded=true] {
464
- background-color: var(--context-menu-blur-focus-bg);
465
- }
466
- .vuuMenuItem-separator {
467
- border-top: solid 1px var(--context-menu-blur-focus-bg);
468
- }
469
- .vuuMenuItem[aria-haspopup=true]:after {
470
- content: var(--menu-item-twisty-content);
471
- -webkit-mask: var(--vuu-svg-chevron-right) center center/8px 8px no-repeat;
472
- mask: var(---vuu-svg-chevron-right) center center/8px 8px no-repeat;
473
- background-color: var(--menu-item-twisty-color);
474
- height: 16px;
475
- left: var(--menu-item-twisty-left);
476
- right: var(--menu-item-twisty-right);
477
- margin-top: -8px;
478
- position: absolute;
479
- top: var(--menu-item-twisty-top);
480
- transition: transform 0.3s;
481
- width: 16px;
482
- }
483
- .vuuMenuItem[data-highlighted] {
484
- background-color: var(--context-menu-highlight-bg);
485
- }
486
- .vuuMenuItem:hover {
487
- background-color: var(--context-menu-highlight-bg);
488
- cursor: default;
489
- }
490
- .vuuMenuList-childMenuShowing .vuuMenuItem[data-highlighted] {
491
- background-color: var(--context-menu-blur-focus-bg);
492
- }
493
- .vuuMenuItem.focusVisible:before {
494
- content: "";
495
- position: absolute;
496
- top: 0;
497
- left: 0;
498
- right: 0;
499
- bottom: 0px;
500
- border: dotted var(--focus-visible-border-color) 2px;
501
- }
502
- .vuuPopupContainer.top-bottom-right-right .popup-menu {
503
- left: auto;
504
- right: 0;
505
- }
506
- .popup-menu .menu-item.showing > button,
507
- .popup-menu .menu-item > button:focus,
508
- .popup-menu .menu-item > button:hover {
509
- text-decoration: none;
510
- color: rgb(0, 0, 0);
511
- background-color: rgb(220, 220, 220);
512
- }
513
- .vuuMenuItem-button:active,
514
- .vuuMenuItem-button:hover {
515
- outline: 0;
516
- }
517
- .popup-menu .menu-item.disabled > button {
518
- clear: both;
519
- font-weight: normal;
520
- line-height: 1.5;
521
- color: rgb(120, 120, 120);
522
- white-space: nowrap;
523
- text-decoration: none;
524
- cursor: default;
525
- }
526
-
527
- /* ../vuu-popups/src/popup/popup-service.css */
528
- .vuuPopup {
529
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
530
- position: absolute;
531
- top: 0;
532
- left: 0;
533
- width: 0;
534
- height: 0;
535
- overflow: visible;
536
- z-index: 1000;
537
- }
538
- .vuuPopup {
539
- position: absolute;
540
- }
541
-
542
- /* ../vuu-popups/src/popup-menu/PopupMenu.css */
543
- .vuuPopupMenu {
544
- --saltButton-height: 24px;
545
- --saltButton-width: 24px;
546
- --vuu-icon-color: #606477;
547
- --vuu-icon-height: 20px;
548
- --vuu-icon-left: 2px;
549
- --vuu-icon-size: 16px;
550
- --vuu-icon-top: 2px;
551
- --vuu-icon-width: 20px;
552
- background: var(--vuuPopupMenu-background, transparent);
553
- border-radius: 4px;
554
- cursor: pointer;
555
- display: inline-block;
556
- margin-top: 2px;
557
- padding: 2px;
558
- }
559
- .vuuPopupMenu:hover {
560
- --vuu-icon-color: var(--saltButton-text-color-hover);
561
- }
562
- .vuuPopupMenu-open {
563
- --saltButton-background: var(--salt-actionable-secondary-background-active);
564
- --vuu-icon-color: white;
565
- }
566
- .vuu-theme .vuuPopupMenu:hover {
567
- --saltButton-background-hover: #F37880;
568
- }
569
- .vuu-theme .vuuPopupMenu-open {
570
- --saltButton-background: #6D18BD;
571
- }
572
-
573
1
  /* src/drag-drop/Draggable.css */
574
2
  .vuuDraggable {
575
3
  background: transparent;
@@ -580,10 +8,10 @@ vuuUserPanel-history {
580
8
  z-index: 2000;
581
9
  }
582
10
  .vuuDraggable-spacer {
583
- display: var(--saltDraggable-display, inline-block);
584
- height: var(--saltDraggable-spacer-height, var(--tabstrip-height));
585
- transition: var(--saltDraggable-transitionProp, width) 0.3s ease;
586
- width: var(--saltDraggable-spacer-width, 0);
11
+ display: var(--vuuDraggable-display, inline-block);
12
+ height: var(--vuuDraggable-spacer-height, var(--tabstrip-height));
13
+ transition: var(--vuuDraggable-transitionProp, width) 0.3s ease;
14
+ width: var(--vuuDraggable-spacer-width, 0);
587
15
  }
588
16
  .vuuDraggable-dropIndicatorPosition {
589
17
  display: var(--saltDraggable-display, inline-block);
@@ -591,7 +19,7 @@ vuuUserPanel-history {
591
19
  width: 100%;
592
20
  }
593
21
  .vuuDraggable-dropIndicatorContainer {
594
- transition: var(--saltDraggable-transitionProp, top) 0.2s ease;
22
+ transition: var(--vuuDraggable-transitionProp, top) 0.2s ease;
595
23
  }
596
24
  .vuuDraggable-dropIndicator {
597
25
  background-color: var(--salt-palette-accent-background);
@@ -670,6 +98,206 @@ vuuUserPanel-history {
670
98
  padding: 0;
671
99
  }
672
100
 
101
+ /* src/list/Highlighter.css */
102
+ .saltHighlighter-highlight {
103
+ font-weight: var(--salt-text-fontWeight-strong);
104
+ }
105
+
106
+ /* src/list/CheckboxIcon.css */
107
+ .vuuCheckboxIcon {
108
+ --vuu-icon-size: 14px;
109
+ --vuu-icon-left: -1px;
110
+ --vuu-icon-top: -1px;
111
+ --vuu-icon-svg: var(--vuu-svg-tick);
112
+ border-style: solid;
113
+ border-color: var(--vuuCheckboxIcon-borderColor, var(--salt-selectable-borderColor));
114
+ border-radius: var(--vuuCheckboxIcon-borderRadius, 3px);
115
+ border-width: 1px;
116
+ display: inline-block;
117
+ height: var(--vuuCheckboxIcon-size, 14px);
118
+ position: relative;
119
+ width: var(--vuuCheckboxIcon-size, 14px);
120
+ }
121
+ .vuuCheckboxIcon-checked {
122
+ background-color: var(--vuuCheckboxIcon-background-checked, var(--salt-selectable-background-selected));
123
+ border-color: var(--vuuCheckboxIcon-borderColor-checked, var(--salt-selectable-borderColor-selected));
124
+ }
125
+ .vuuCheckboxIcon-checked:after {
126
+ content: "";
127
+ background-color: white;
128
+ left: var(--vuu-icon-left, auto);
129
+ height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));
130
+ -webkit-mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
131
+ mask: var(--vuu-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);
132
+ mask-repeat: no-repeat;
133
+ -webkit-mask-repeat: no-repeat;
134
+ position: absolute;
135
+ top: var(--vuu-icon-top, auto);
136
+ width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));
137
+ }
138
+
139
+ /* src/list/ListItem.css */
140
+ .vuuListItem {
141
+ --list-item-text-color: var(--salt-text-primary-foreground);
142
+ --list-item-background: var(--vuuList-item-background, var(--salt-selectable-background));
143
+ --list-item-text-color-active: var(--salt-text-primary-foreground);
144
+ --list-item-background-active: var(--salt-selectable-background-selected);
145
+ --list-item-alignItems: center;
146
+ }
147
+ .vuuListItem.saltHighlighted {
148
+ --saltCheckbox-icon-stroke: var(--salt-selectable-borderColor-hover);
149
+ --list-item-background: var(--salt-selectable-background-hover);
150
+ }
151
+ .vuuListItemHeader {
152
+ font-weight: var(--salt-text-fontWeight-strong);
153
+ }
154
+ .vuuListItemHeader[data-sticky] {
155
+ position: sticky;
156
+ top: 0;
157
+ z-index: 1;
158
+ }
159
+ .vuuListItem {
160
+ color: var(--list-item-text-color);
161
+ cursor: var(--vuuList-item-cursor, pointer);
162
+ background: var(--vuuList-item-background, var(--list-item-background));
163
+ font-size: var(--salt-text-fontSize);
164
+ text-align: var(--salt-text-textAlign);
165
+ line-height: var(--salt-text-lineHeight);
166
+ height: var(--vuuList-item-height, var(--list-item-height, auto));
167
+ margin-bottom: var(--list-item-gap);
168
+ padding: 0 var(--salt-size-unit);
169
+ left: 0;
170
+ right: 0;
171
+ display: flex;
172
+ position: relative;
173
+ align-items: var(--list-item-alignItems);
174
+ white-space: nowrap;
175
+ }
176
+ .vuuListItem:last-child {
177
+ margin-bottom: 0px;
178
+ }
179
+ .vuuListItem-checkbox {
180
+ --list-item-background-active: var(--salt-selectable-background);
181
+ --list-item-text-color-active: var(--salt-text-primary-foreground);
182
+ --list-item-text-padding: 0 0 0 var(--salt-size-unit);
183
+ }
184
+ .vuuListItem[aria-selected=true]:not(.vuuListItem-checkbox) {
185
+ --list-item-background: var(--list-item-background-active);
186
+ color: var(--list-item-text-color-active);
187
+ }
188
+ .vuuListItem.saltDisabled {
189
+ --list-item-text-color: var(--salt-text-primary-foreground-disabled);
190
+ cursor: var(--salt-selectable-cursor-disabled);
191
+ }
192
+ .vuuListItem.vuuFocusVisible {
193
+ outline-style: var(--salt-focused-outlineStyle);
194
+ outline-width: var(--salt-focused-outlineWidth);
195
+ outline-offset: -2px;
196
+ outline-color: var(--salt-focused-outlineColor);
197
+ }
198
+ .vuuListItem.vuuFocusVisible:after {
199
+ content: none;
200
+ }
201
+ .vuuListItem[aria-selected=true]:not(.vuuListItem-checkbox).vuuFocusVisible {
202
+ outline-color: var(--list-item-selected-focus-outlineColor);
203
+ }
204
+ .vuuListItem-textWrapper {
205
+ flex: 1;
206
+ overflow: hidden;
207
+ padding: var(--list-item-text-padding, 0px);
208
+ white-space: nowrap;
209
+ text-overflow: ellipsis;
210
+ }
211
+ .vuuListItem-proxy {
212
+ position: absolute !important;
213
+ visibility: hidden;
214
+ }
215
+ .vuuDraggable-list-item {
216
+ --vuuList-item-height: 24px;
217
+ background-color: white;
218
+ }
219
+ .vuuListItem.vuuDraggable-dragAway {
220
+ display: none;
221
+ }
222
+
223
+ /* src/list/List.css */
224
+ .vuuList {
225
+ --list-background: var(--salt-container-primary-background);
226
+ --list-borderStyle: var(--vuuList-borderStyle,--salt-container-borderStyle);
227
+ --list-borderWidth: var(--salt-size-border);
228
+ --list-height: auto;
229
+ --list-item-height: var(--salt-size-stackable);
230
+ --list-item-gap: 0px;
231
+ --list-maxHeight: 100%;
232
+ --vuuDraggable-display: block;
233
+ --vuuDraggable-spacer-height: 0;
234
+ --vuuDraggable-spacer-width: 100%;
235
+ --vuuDraggable-transitionProp: height;
236
+ background: var(--list-background);
237
+ border-color: var(--salt-container-primary-borderColor);
238
+ border-style: var(--list-borderStyle);
239
+ border-width: var(--list-borderWidth);
240
+ height: var(--saltList-height, var(--list-height));
241
+ max-height: var(--list-maxHeight);
242
+ outline: none;
243
+ overflow-y: auto;
244
+ position: relative;
245
+ user-select: none;
246
+ width: var(--saltList-width, auto);
247
+ }
248
+ .vuuList-borderless {
249
+ --list-borderStyle: none;
250
+ }
251
+ .vuuList-viewport {
252
+ --list-item-height: 30px;
253
+ max-height: calc(var(--list-maxHeight) - 2 * var(--list-borderWidth));
254
+ overflow: auto;
255
+ }
256
+ .vuuListItemHeader {
257
+ --saltList-item-background: var(--list-item-header-background);
258
+ color: var(--list-item-header-color);
259
+ }
260
+ .vuuListItemHeader[data-sticky=true] {
261
+ --saltList-item-background: var(--list-background);
262
+ position: sticky;
263
+ top: 0;
264
+ z-index: 1;
265
+ }
266
+ .vuuList-collapsible .vuuListItemHeader:after {
267
+ border-width: var(--checkbox-borderWidth);
268
+ border-color: var(--checkbox-borderColor);
269
+ content: var(--list-item-header-twisty-content);
270
+ -webkit-mask: var(--list-svg-chevron-down) center center/12px 12px no-repeat;
271
+ mask: var(--list-svg-chevron-down) center center/12px 12px no-repeat;
272
+ background: var(--list-item-header-twisty-color);
273
+ height: 12px;
274
+ left: var(--list-item-header-twisty-left);
275
+ right: var(--list-item-header-twisty-right);
276
+ margin-top: -8px;
277
+ position: absolute;
278
+ top: var(--list-item-header-twisty-top);
279
+ transition: transform 0.3s;
280
+ width: 12px;
281
+ }
282
+ .vuuListItemHeader[aria-expanded=false]:after {
283
+ transform: rotate(-90deg);
284
+ }
285
+ .vuuList-scrollingContentContainer {
286
+ box-sizing: inherit;
287
+ position: relative;
288
+ }
289
+ .vuuList-virtualized .vuuListItem {
290
+ line-height: 30px;
291
+ position: absolute;
292
+ top: 0;
293
+ left: 0;
294
+ right: 0;
295
+ will-change: transform;
296
+ }
297
+ .vuuList.saltFocusVisible:after {
298
+ inset: 2px;
299
+ }
300
+
673
301
  /* src/tabstrip/Tabstrip.css */
674
302
  .vuuTabstrip {
675
303
  --vuuOverflowContainer-background: transparent;
@@ -758,6 +386,7 @@ vuuUserPanel-history {
758
386
  }
759
387
  .vuuDraggable-tabstrip-horizontal {
760
388
  --tab-thumb-height: 2px;
389
+ --tab-thumb-left: 0px;
761
390
  --tabstrip-height: 28px;
762
391
  line-height: var(--tabstrip-height);
763
392
  }