@skygraph/styles 0.0.0-placeholder.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -6
  3. package/components/autocomplete.css +33 -0
  4. package/components/avatar.css +37 -0
  5. package/components/badge.css +102 -0
  6. package/components/breadcrumb.css +29 -0
  7. package/components/button.css +181 -0
  8. package/components/calendar.css +408 -0
  9. package/components/carousel.css +102 -0
  10. package/components/cascader.css +354 -0
  11. package/components/charts.css +408 -0
  12. package/components/checkbox.css +114 -0
  13. package/components/collapse.css +166 -0
  14. package/components/colorpicker.css +252 -0
  15. package/components/context-menu.css +95 -0
  16. package/components/dashboard.css +299 -0
  17. package/components/datagrid.css +86 -0
  18. package/components/datepicker.css +601 -0
  19. package/components/descriptions.css +82 -0
  20. package/components/diagram.css +435 -0
  21. package/components/drawer.css +103 -0
  22. package/components/dropdown.css +93 -0
  23. package/components/empty.css +25 -0
  24. package/components/event-timeline.css +100 -0
  25. package/components/field.css +35 -0
  26. package/components/form.css +115 -0
  27. package/components/gantt.css +166 -0
  28. package/components/inline-edit.css +113 -0
  29. package/components/input-group.css +79 -0
  30. package/components/input-number.css +76 -0
  31. package/components/input-password.css +104 -0
  32. package/components/input.css +185 -0
  33. package/components/list.css +357 -0
  34. package/components/mentions.css +54 -0
  35. package/components/menu.css +309 -0
  36. package/components/modal.css +77 -0
  37. package/components/notification.css +128 -0
  38. package/components/pagination.css +162 -0
  39. package/components/pin-input.css +71 -0
  40. package/components/popconfirm.css +95 -0
  41. package/components/progress.css +116 -0
  42. package/components/radio.css +95 -0
  43. package/components/rate.css +34 -0
  44. package/components/resource-calendar.css +224 -0
  45. package/components/result.css +45 -0
  46. package/components/schema-form-editor.css +433 -0
  47. package/components/search-input.css +112 -0
  48. package/components/segmented.css +76 -0
  49. package/components/select.css +172 -0
  50. package/components/skeleton.css +68 -0
  51. package/components/slider.css +51 -0
  52. package/components/spin.css +86 -0
  53. package/components/steps.css +185 -0
  54. package/components/switch.css +75 -0
  55. package/components/table.css +1023 -0
  56. package/components/tabs.css +117 -0
  57. package/components/tag-input.css +94 -0
  58. package/components/tag.css +61 -0
  59. package/components/textarea.css +22 -0
  60. package/components/timeline.css +169 -0
  61. package/components/timepicker.css +213 -0
  62. package/components/tooltip.css +91 -0
  63. package/components/transfer.css +140 -0
  64. package/components/tree.css +574 -0
  65. package/components/treeselect.css +219 -0
  66. package/components/upload.css +124 -0
  67. package/index.css +69 -3
  68. package/index.d.ts +9 -0
  69. package/package.json +102 -18
  70. package/print.css +88 -0
  71. package/reset.css +17 -0
  72. package/themes/dark.css +17 -0
  73. package/themes/default.css +14 -0
  74. package/tokens.css +312 -0
  75. package/transitions.css +158 -0
@@ -0,0 +1,574 @@
1
+ /* === Tree === */
2
+
3
+ .sg-tree {
4
+ font-size: var(--sg-font-size);
5
+ color: var(--sg-color-text);
6
+ line-height: var(--sg-line-height);
7
+ position: relative;
8
+ outline: none;
9
+ }
10
+
11
+ .sg-tree:focus-visible {
12
+ outline: 2px solid var(--sg-color-primary);
13
+ outline-offset: -2px;
14
+ border-radius: var(--sg-border-radius);
15
+ }
16
+
17
+ .sg-tree-empty {
18
+ padding: var(--sg-padding-lg);
19
+ text-align: center;
20
+ color: var(--sg-color-text-tertiary);
21
+ }
22
+
23
+ /* ═══════════════════════════════════════════
24
+ SEARCH BAR
25
+ ═══════════════════════════════════════════ */
26
+
27
+ .sg-tree-search {
28
+ position: relative;
29
+ margin-bottom: var(--sg-margin-sm);
30
+ }
31
+
32
+ .sg-tree-search-input {
33
+ width: 100%;
34
+ height: 32px;
35
+ padding: 0 28px 0 var(--sg-padding-sm);
36
+ border: 1px solid var(--sg-color-border);
37
+ border-radius: var(--sg-border-radius);
38
+ background: var(--sg-color-bg-container);
39
+ color: var(--sg-color-text);
40
+ font-size: var(--sg-font-size);
41
+ outline: none;
42
+ transition: border-color var(--sg-transition-duration) var(--sg-transition-timing),
43
+ box-shadow var(--sg-transition-duration) var(--sg-transition-timing);
44
+ box-sizing: border-box;
45
+ }
46
+
47
+ .sg-tree-search-input::placeholder {
48
+ color: var(--sg-color-text-tertiary);
49
+ }
50
+
51
+ .sg-tree-search-input:focus {
52
+ border-color: var(--sg-color-primary);
53
+ box-shadow: 0 0 0 2px var(--sg-color-primary-bg);
54
+ }
55
+
56
+ .sg-tree-search-clear {
57
+ position: absolute;
58
+ right: 6px;
59
+ top: 50%;
60
+ transform: translateY(-50%);
61
+ width: 20px;
62
+ height: 20px;
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ border: none;
67
+ background: none;
68
+ color: var(--sg-color-text-tertiary);
69
+ cursor: pointer;
70
+ font-size: 14px;
71
+ border-radius: 50%;
72
+ padding: 0;
73
+ line-height: 1;
74
+ transition: color var(--sg-transition-duration) var(--sg-transition-timing),
75
+ background var(--sg-transition-duration) var(--sg-transition-timing);
76
+ }
77
+
78
+ .sg-tree-search-clear:hover {
79
+ color: var(--sg-color-text);
80
+ background: var(--sg-color-bg-hover);
81
+ }
82
+
83
+ /* ═══════════════════════════════════════════
84
+ TOOLBAR
85
+ ═══════════════════════════════════════════ */
86
+
87
+ .sg-tree-toolbar {
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: space-between;
91
+ padding: var(--sg-padding-xs) 0;
92
+ margin-bottom: var(--sg-margin-xs);
93
+ border-bottom: 1px solid var(--sg-color-border);
94
+ }
95
+
96
+ .sg-tree-toolbar-actions {
97
+ display: flex;
98
+ align-items: center;
99
+ gap: 2px;
100
+ }
101
+
102
+ .sg-tree-toolbar-btn {
103
+ display: inline-flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ width: 26px;
107
+ height: 26px;
108
+ border: none;
109
+ background: none;
110
+ color: var(--sg-color-text-secondary);
111
+ cursor: pointer;
112
+ border-radius: var(--sg-border-radius-sm);
113
+ font-size: 14px;
114
+ padding: 0;
115
+ transition: color var(--sg-transition-duration) var(--sg-transition-timing),
116
+ background var(--sg-transition-duration) var(--sg-transition-timing);
117
+ }
118
+
119
+ .sg-tree-toolbar-btn:hover {
120
+ color: var(--sg-color-primary);
121
+ background: var(--sg-color-bg-hover);
122
+ }
123
+
124
+ .sg-tree-toolbar-divider {
125
+ width: 1px;
126
+ height: 16px;
127
+ background: var(--sg-color-border);
128
+ margin: 0 4px;
129
+ }
130
+
131
+ .sg-tree-toolbar-extra {
132
+ display: flex;
133
+ align-items: center;
134
+ }
135
+
136
+ /* ═══════════════════════════════════════════
137
+ NODE
138
+ ═══════════════════════════════════════════ */
139
+
140
+ .sg-tree-node {
141
+ display: flex;
142
+ align-items: center;
143
+ padding: 2px 4px;
144
+ cursor: default;
145
+ transition: background-color var(--sg-transition-duration) var(--sg-transition-timing);
146
+ border-radius: var(--sg-border-radius-sm);
147
+ min-height: 28px;
148
+ position: relative;
149
+ user-select: none;
150
+ }
151
+
152
+ .sg-tree-node:hover {
153
+ background: var(--sg-color-bg-hover);
154
+ }
155
+
156
+ .sg-tree-node-selected {
157
+ background: var(--sg-color-primary-bg);
158
+ }
159
+
160
+ .sg-tree-node-selected:hover {
161
+ background: var(--sg-color-primary-bg);
162
+ }
163
+
164
+ .sg-tree-node-disabled {
165
+ color: var(--sg-color-text-disabled);
166
+ cursor: not-allowed;
167
+ }
168
+
169
+ .sg-tree-node-disabled:hover {
170
+ background: transparent;
171
+ }
172
+
173
+ .sg-tree-disabled .sg-tree-node {
174
+ color: var(--sg-color-text-disabled);
175
+ cursor: not-allowed;
176
+ }
177
+
178
+ .sg-tree-disabled .sg-tree-node:hover {
179
+ background: transparent;
180
+ }
181
+
182
+ /* Focused node */
183
+
184
+ .sg-tree-node-focused {
185
+ outline: 2px solid var(--sg-color-primary);
186
+ outline-offset: -2px;
187
+ z-index: 1;
188
+ }
189
+
190
+ .sg-tree-node-focused.sg-tree-node-selected {
191
+ outline-color: var(--sg-color-primary);
192
+ }
193
+
194
+ /* Dragging state */
195
+
196
+ .sg-tree-node-dragging {
197
+ opacity: 0.4;
198
+ }
199
+
200
+ /* Block node */
201
+
202
+ .sg-tree-block-node .sg-tree-node {
203
+ display: flex;
204
+ }
205
+
206
+ .sg-tree-block-node .sg-tree-title {
207
+ flex: 1;
208
+ }
209
+
210
+ /* ═══════════════════════════════════════════
211
+ SWITCHER
212
+ ═══════════════════════════════════════════ */
213
+
214
+ .sg-tree-switcher {
215
+ display: inline-flex;
216
+ align-items: center;
217
+ justify-content: center;
218
+ width: 24px;
219
+ height: 24px;
220
+ flex-shrink: 0;
221
+ cursor: pointer;
222
+ user-select: none;
223
+ color: var(--sg-color-text-secondary);
224
+ font-size: 12px;
225
+ }
226
+
227
+ .sg-tree-switcher-arrow {
228
+ transition: transform 0.2s ease;
229
+ }
230
+
231
+ .sg-tree-switcher-arrow-open {
232
+ transform: rotate(90deg);
233
+ }
234
+
235
+ .sg-tree-switcher-open {
236
+ /* reserved */
237
+ }
238
+
239
+ .sg-tree-switcher-close {
240
+ /* reserved */
241
+ }
242
+
243
+ .sg-tree-switcher-noop {
244
+ cursor: default;
245
+ width: 24px;
246
+ }
247
+
248
+ .sg-tree-switcher-leaf {
249
+ cursor: default;
250
+ color: var(--sg-color-text-tertiary);
251
+ font-size: 10px;
252
+ }
253
+
254
+ .sg-tree-switcher-leaf-icon {
255
+ cursor: default;
256
+ }
257
+
258
+ .sg-tree-switcher-loading {
259
+ cursor: default;
260
+ }
261
+
262
+ .sg-tree-switcher:hover:not(.sg-tree-switcher-noop):not(.sg-tree-switcher-leaf):not(.sg-tree-switcher-loading) {
263
+ color: var(--sg-color-primary);
264
+ }
265
+
266
+ /* ═══════════════════════════════════════════
267
+ CHECKBOX IN TREE
268
+ ═══════════════════════════════════════════ */
269
+
270
+ .sg-tree-node .sg-checkbox {
271
+ margin-right: var(--sg-margin-xs);
272
+ flex-shrink: 0;
273
+ }
274
+
275
+ /* ═══════════════════════════════════════════
276
+ ICON
277
+ ═══════════════════════════════════════════ */
278
+
279
+ .sg-tree-icon {
280
+ display: inline-flex;
281
+ align-items: center;
282
+ justify-content: center;
283
+ width: 20px;
284
+ height: 20px;
285
+ margin-right: var(--sg-margin-xs);
286
+ flex-shrink: 0;
287
+ font-size: var(--sg-font-size);
288
+ }
289
+
290
+ /* ═══════════════════════════════════════════
291
+ TITLE
292
+ ═══════════════════════════════════════════ */
293
+
294
+ .sg-tree-title {
295
+ display: inline-flex;
296
+ align-items: center;
297
+ padding: 0 var(--sg-padding-xs);
298
+ border-radius: var(--sg-border-radius-sm);
299
+ white-space: nowrap;
300
+ overflow: hidden;
301
+ text-overflow: ellipsis;
302
+ min-height: 22px;
303
+ }
304
+
305
+ .sg-tree-title-selectable {
306
+ cursor: pointer;
307
+ }
308
+
309
+ .sg-tree-title-selectable:hover {
310
+ color: var(--sg-color-primary);
311
+ }
312
+
313
+ .sg-tree-node-selected .sg-tree-title {
314
+ color: var(--sg-color-primary);
315
+ font-weight: 500;
316
+ }
317
+
318
+ /* ═══════════════════════════════════════════
319
+ SEARCH HIGHLIGHT
320
+ ═══════════════════════════════════════════ */
321
+
322
+ .sg-tree-highlight {
323
+ color: var(--sg-color-error);
324
+ font-weight: 600;
325
+ background: var(--sg-color-warning-bg, rgba(255, 200, 0, 0.15));
326
+ border-radius: 2px;
327
+ padding: 0 1px;
328
+ }
329
+
330
+ /* ═══════════════════════════════════════════
331
+ INLINE EDIT
332
+ ═══════════════════════════════════════════ */
333
+
334
+ .sg-tree-node-editing .sg-tree-title {
335
+ padding: 0;
336
+ }
337
+
338
+ .sg-tree-edit-input {
339
+ height: 22px;
340
+ padding: 0 var(--sg-padding-xs);
341
+ border: 1px solid var(--sg-color-primary);
342
+ border-radius: var(--sg-border-radius-sm);
343
+ background: var(--sg-color-bg-container);
344
+ color: var(--sg-color-text);
345
+ font-size: var(--sg-font-size);
346
+ font-family: inherit;
347
+ outline: none;
348
+ box-shadow: 0 0 0 2px var(--sg-color-primary-bg);
349
+ min-width: 80px;
350
+ box-sizing: border-box;
351
+ }
352
+
353
+ /* ═══════════════════════════════════════════
354
+ NODE ACTIONS (hover buttons)
355
+ ═══════════════════════════════════════════ */
356
+
357
+ .sg-tree-actions {
358
+ display: none;
359
+ align-items: center;
360
+ gap: 2px;
361
+ margin-left: auto;
362
+ padding-left: var(--sg-padding-xs);
363
+ flex-shrink: 0;
364
+ }
365
+
366
+ .sg-tree-node:hover .sg-tree-actions,
367
+ .sg-tree-node-focused .sg-tree-actions {
368
+ display: flex;
369
+ }
370
+
371
+ .sg-tree-action-btn {
372
+ display: inline-flex;
373
+ align-items: center;
374
+ justify-content: center;
375
+ width: 22px;
376
+ height: 22px;
377
+ border: none;
378
+ background: none;
379
+ color: var(--sg-color-text-secondary);
380
+ cursor: pointer;
381
+ border-radius: var(--sg-border-radius-sm);
382
+ font-size: 12px;
383
+ padding: 0;
384
+ transition: color var(--sg-transition-duration) var(--sg-transition-timing),
385
+ background var(--sg-transition-duration) var(--sg-transition-timing);
386
+ }
387
+
388
+ .sg-tree-action-btn:hover {
389
+ color: var(--sg-color-primary);
390
+ background: var(--sg-color-bg-hover);
391
+ }
392
+
393
+ .sg-tree-action-danger:hover {
394
+ color: var(--sg-color-error);
395
+ }
396
+
397
+ /*
398
+ * Специфичность выше, чем у `.sg-tree-action-btn:hover`, чтобы победить :hover-состояние
399
+ * в disabled-ветке без `!important`.
400
+ */
401
+ .sg-tree-action-btn.sg-tree-action-disabled,
402
+ .sg-tree-action-btn.sg-tree-action-disabled:hover {
403
+ color: var(--sg-color-text-disabled);
404
+ cursor: not-allowed;
405
+ background: none;
406
+ }
407
+
408
+ /* ═══════════════════════════════════════════
409
+ STATUS INDICATORS
410
+ ═══════════════════════════════════════════ */
411
+
412
+ .sg-tree-status {
413
+ display: inline-block;
414
+ width: 6px;
415
+ height: 6px;
416
+ border-radius: 50%;
417
+ margin-right: 6px;
418
+ flex-shrink: 0;
419
+ }
420
+
421
+ .sg-tree-status-success { background: var(--sg-color-success); }
422
+ .sg-tree-status-warning { background: var(--sg-color-warning); }
423
+ .sg-tree-status-error { background: var(--sg-color-error); }
424
+ .sg-tree-status-info { background: var(--sg-color-primary); }
425
+
426
+ .sg-tree-node-status-success { border-left: 2px solid var(--sg-color-success); }
427
+ .sg-tree-node-status-warning { border-left: 2px solid var(--sg-color-warning); }
428
+ .sg-tree-node-status-error { border-left: 2px solid var(--sg-color-error); }
429
+ .sg-tree-node-status-info { border-left: 2px solid var(--sg-color-primary); }
430
+
431
+ /* ═══════════════════════════════════════════
432
+ CONNECTING LINES (tree guide lines)
433
+ ═══════════════════════════════════════════ */
434
+
435
+ .sg-tree-show-line .sg-tree-node {
436
+ position: relative;
437
+ }
438
+
439
+ .sg-tree-indent-line {
440
+ position: absolute;
441
+ top: 0;
442
+ bottom: 0;
443
+ width: 1px;
444
+ background: var(--sg-color-border);
445
+ }
446
+
447
+ .sg-tree-indent-line-hidden {
448
+ display: none;
449
+ }
450
+
451
+ .sg-tree-indent-branch {
452
+ position: absolute;
453
+ top: 0;
454
+ width: 12px;
455
+ height: 50%;
456
+ border-left: 1px solid var(--sg-color-border);
457
+ border-bottom: 1px solid var(--sg-color-border);
458
+ border-bottom-left-radius: 4px;
459
+ }
460
+
461
+ .sg-tree-indent-branch-last {
462
+ /* same styles, parent line will be hidden via indent-line-hidden */
463
+ }
464
+
465
+ /* ═══════════════════════════════════════════
466
+ DIRECTORY MODE
467
+ ═══════════════════════════════════════════ */
468
+
469
+ .sg-tree-directory .sg-tree-node {
470
+ padding: 2px 8px;
471
+ }
472
+
473
+ .sg-tree-directory .sg-tree-node-selected {
474
+ background: var(--sg-color-primary);
475
+ }
476
+
477
+ .sg-tree-directory .sg-tree-node-selected .sg-tree-title,
478
+ .sg-tree-directory .sg-tree-node-selected .sg-tree-icon {
479
+ color: var(--sg-color-white);
480
+ }
481
+
482
+ .sg-tree-directory .sg-tree-node-selected .sg-tree-switcher {
483
+ color: var(--sg-color-white);
484
+ }
485
+
486
+ .sg-tree-directory .sg-tree-node-selected .sg-tree-status {
487
+ box-shadow: 0 0 0 1px var(--sg-color-white);
488
+ }
489
+
490
+ .sg-tree-directory .sg-tree-node-selected .sg-tree-actions .sg-tree-action-btn {
491
+ color: rgba(255, 255, 255, 0.7);
492
+ }
493
+
494
+ .sg-tree-directory .sg-tree-node-selected .sg-tree-actions .sg-tree-action-btn:hover {
495
+ color: var(--sg-color-white);
496
+ background: rgba(255, 255, 255, 0.15);
497
+ }
498
+
499
+ /* ═══════════════════════════════════════════
500
+ DRAG & DROP
501
+ ═══════════════════════════════════════════ */
502
+
503
+ .sg-tree-node-draggable {
504
+ cursor: grab;
505
+ }
506
+
507
+ .sg-tree-node-draggable:active {
508
+ cursor: grabbing;
509
+ }
510
+
511
+ .sg-tree-node-drop-inner {
512
+ background: var(--sg-color-primary-bg);
513
+ outline: 1px dashed var(--sg-color-primary);
514
+ outline-offset: -1px;
515
+ }
516
+
517
+ .sg-tree-node-drop-before {
518
+ border-top: 2px solid var(--sg-color-primary);
519
+ }
520
+
521
+ .sg-tree-node-drop-after {
522
+ border-bottom: 2px solid var(--sg-color-primary);
523
+ }
524
+
525
+ /* ═══════════════════════════════════════════
526
+ ANIMATION
527
+ ═══════════════════════════════════════════ */
528
+
529
+ .sg-tree-animated .sg-tree-node {
530
+ animation: sg-tree-node-in 0.2s ease-out;
531
+ }
532
+
533
+ @keyframes sg-tree-node-in {
534
+ from {
535
+ opacity: 0;
536
+ transform: translateY(-4px);
537
+ }
538
+ to {
539
+ opacity: 1;
540
+ transform: translateY(0);
541
+ }
542
+ }
543
+
544
+ /* ═══════════════════════════════════════════
545
+ VIRTUAL SCROLL
546
+ ═══════════════════════════════════════════ */
547
+
548
+ .sg-tree-virtual-container {
549
+ will-change: transform;
550
+ outline: none;
551
+ }
552
+
553
+ .sg-tree-virtual-container:focus-visible {
554
+ outline: 2px solid var(--sg-color-primary);
555
+ outline-offset: -2px;
556
+ border-radius: var(--sg-border-radius);
557
+ }
558
+
559
+ .sg-tree-virtual-container::-webkit-scrollbar {
560
+ width: 6px;
561
+ }
562
+
563
+ .sg-tree-virtual-container::-webkit-scrollbar-thumb {
564
+ background: var(--sg-color-border);
565
+ border-radius: 3px;
566
+ }
567
+
568
+ .sg-tree-virtual-container::-webkit-scrollbar-thumb:hover {
569
+ background: var(--sg-color-text-tertiary);
570
+ }
571
+
572
+ .sg-tree-virtual-container::-webkit-scrollbar-track {
573
+ background: transparent;
574
+ }