@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,172 @@
1
+ .sg-select {
2
+ position: relative;
3
+ display: inline-block;
4
+ min-width: 120px;
5
+ font-size: var(--sg-font-size);
6
+ }
7
+
8
+ .sg-select-disabled {
9
+ opacity: 0.5;
10
+ pointer-events: none;
11
+ }
12
+
13
+ .sg-select-selector {
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: space-between;
17
+ height: var(--sg-height-md);
18
+ padding: 0 var(--sg-padding-md);
19
+ background: var(--sg-color-bg-container);
20
+ border: 1px solid var(--sg-color-border);
21
+ border-radius: var(--sg-border-radius);
22
+ cursor: pointer;
23
+ transition: border-color var(--sg-transition-duration);
24
+ }
25
+
26
+ .sg-select-small .sg-select-selector {
27
+ height: var(--sg-height-sm);
28
+ font-size: var(--sg-font-size-sm);
29
+ }
30
+
31
+ .sg-select-large .sg-select-selector {
32
+ height: var(--sg-height-lg);
33
+ font-size: var(--sg-font-size-lg);
34
+ }
35
+
36
+ .sg-select-open .sg-select-selector {
37
+ border-color: var(--sg-color-primary);
38
+ box-shadow: 0 0 0 2px var(--sg-color-primary-bg);
39
+ }
40
+
41
+ .sg-select-selector:hover {
42
+ border-color: var(--sg-color-primary-hover);
43
+ }
44
+
45
+ .sg-select-placeholder {
46
+ color: var(--sg-color-text-placeholder);
47
+ }
48
+
49
+ .sg-select-selection-item {
50
+ color: var(--sg-color-text);
51
+ }
52
+
53
+ .sg-select-arrow {
54
+ font-size: 10px;
55
+ color: var(--sg-color-text-tertiary);
56
+ margin-left: var(--sg-padding-sm);
57
+ }
58
+
59
+ .sg-select-dropdown {
60
+ position: absolute;
61
+ top: 100%;
62
+ left: 0;
63
+ right: 0;
64
+ z-index: 100;
65
+ margin-top: 4px;
66
+ padding: var(--sg-padding-xs) 0;
67
+ background: var(--sg-color-bg-elevated);
68
+ border-radius: var(--sg-border-radius);
69
+ box-shadow: var(--sg-shadow-lg);
70
+ max-height: 256px;
71
+ overflow-y: auto;
72
+ }
73
+
74
+ .sg-select-option {
75
+ padding: var(--sg-padding-xs) var(--sg-padding-md);
76
+ cursor: pointer;
77
+ color: var(--sg-color-text);
78
+ transition: background var(--sg-transition-duration);
79
+ }
80
+
81
+ .sg-select-option:hover {
82
+ background: var(--sg-color-bg-hover);
83
+ }
84
+
85
+ .sg-select-option-selected {
86
+ font-weight: 600;
87
+ background: var(--sg-color-primary-bg);
88
+ }
89
+
90
+ .sg-select-option-disabled {
91
+ color: var(--sg-color-text-disabled);
92
+ cursor: not-allowed;
93
+ }
94
+
95
+ .sg-select-loading {
96
+ --sg-spin-color: var(--sg-color-text-tertiary);
97
+ }
98
+
99
+ .sg-select-option-loading {
100
+ display: flex;
101
+ align-items: center;
102
+ justify-content: space-between;
103
+ --sg-spin-color: var(--sg-color-text-tertiary);
104
+ }
105
+
106
+ /* === Multiple-select chips === */
107
+ .sg-select-multiple .sg-select-selector {
108
+ height: auto;
109
+ min-height: var(--sg-height-md);
110
+ padding: 2px var(--sg-padding-sm) 2px 4px;
111
+ flex-wrap: wrap;
112
+ }
113
+
114
+ .sg-select-multiple.sg-select-small .sg-select-selector {
115
+ min-height: var(--sg-height-sm);
116
+ }
117
+
118
+ .sg-select-multiple.sg-select-large .sg-select-selector {
119
+ min-height: var(--sg-height-lg);
120
+ }
121
+
122
+ .sg-select-tags {
123
+ display: flex;
124
+ flex-wrap: wrap;
125
+ gap: 4px;
126
+ flex: 1;
127
+ min-width: 0;
128
+ }
129
+
130
+ .sg-select-tag {
131
+ display: inline-flex;
132
+ align-items: center;
133
+ gap: 4px;
134
+ height: 22px;
135
+ padding: 0 4px 0 8px;
136
+ font-size: var(--sg-font-size-sm);
137
+ line-height: 20px;
138
+ color: var(--sg-color-text);
139
+ background: var(--sg-color-bg-secondary);
140
+ border: 1px solid var(--sg-color-border-secondary);
141
+ border-radius: var(--sg-border-radius);
142
+ user-select: none;
143
+ max-width: 100%;
144
+ }
145
+
146
+ .sg-select-tag-label {
147
+ overflow: hidden;
148
+ text-overflow: ellipsis;
149
+ white-space: nowrap;
150
+ }
151
+
152
+ .sg-select-tag-remove {
153
+ display: inline-flex;
154
+ align-items: center;
155
+ justify-content: center;
156
+ width: 16px;
157
+ height: 16px;
158
+ padding: 0;
159
+ font-size: 14px;
160
+ line-height: 1;
161
+ color: var(--sg-color-text-tertiary);
162
+ background: transparent;
163
+ border: none;
164
+ border-radius: 2px;
165
+ cursor: pointer;
166
+ transition: color var(--sg-transition-duration), background var(--sg-transition-duration);
167
+ }
168
+
169
+ .sg-select-tag-remove:hover {
170
+ color: var(--sg-color-text);
171
+ background: var(--sg-color-bg-hover);
172
+ }
@@ -0,0 +1,68 @@
1
+ .sg-skeleton {
2
+ display: flex;
3
+ gap: var(--sg-padding-lg);
4
+ width: 100%;
5
+ }
6
+
7
+ .sg-skeleton-header {
8
+ flex-shrink: 0;
9
+ }
10
+
11
+ .sg-skeleton-avatar {
12
+ display: block;
13
+ background: var(--sg-color-bg-hover);
14
+ }
15
+
16
+ .sg-skeleton-avatar-circle {
17
+ border-radius: 50%;
18
+ }
19
+
20
+ .sg-skeleton-avatar-square {
21
+ border-radius: var(--sg-border-radius);
22
+ }
23
+
24
+ .sg-skeleton-content {
25
+ flex: 1;
26
+ min-width: 0;
27
+ }
28
+
29
+ .sg-skeleton-title {
30
+ height: 16px;
31
+ margin-bottom: var(--sg-margin-md);
32
+ background: var(--sg-color-bg-hover);
33
+ border-radius: var(--sg-border-radius-sm);
34
+ }
35
+
36
+ .sg-skeleton-paragraph {
37
+ list-style: none;
38
+ margin: 0;
39
+ padding: 0;
40
+ display: flex;
41
+ flex-direction: column;
42
+ gap: var(--sg-margin-sm);
43
+ }
44
+
45
+ .sg-skeleton-paragraph li {
46
+ height: 16px;
47
+ background: var(--sg-color-bg-hover);
48
+ border-radius: var(--sg-border-radius-sm);
49
+ }
50
+
51
+ /* Pulse animation */
52
+ .sg-skeleton-active .sg-skeleton-avatar,
53
+ .sg-skeleton-active .sg-skeleton-title,
54
+ .sg-skeleton-active .sg-skeleton-paragraph li {
55
+ animation: sg-skeleton-pulse 1.5s ease-in-out infinite;
56
+ background: linear-gradient(
57
+ 90deg,
58
+ var(--sg-color-bg-hover) 25%,
59
+ var(--sg-color-bg-secondary) 37%,
60
+ var(--sg-color-bg-hover) 63%
61
+ );
62
+ background-size: 400% 100%;
63
+ }
64
+
65
+ @keyframes sg-skeleton-pulse {
66
+ 0% { background-position: 100% 50%; }
67
+ 100% { background-position: 0 50%; }
68
+ }
@@ -0,0 +1,51 @@
1
+ .sg-slider {
2
+ /* Track children are positioned; intrinsic width collapses inside flex/grid.
3
+ * Width follows the container; floor scales with the global font-size token. */
4
+ --sg-slider-min-inline-size: calc(8 * var(--sg-font-size));
5
+ box-sizing: border-box;
6
+ width: 100%;
7
+ min-inline-size: var(--sg-slider-min-inline-size);
8
+ padding: var(--sg-padding-sm) 0;
9
+ }
10
+
11
+ .sg-slider-disabled {
12
+ opacity: 0.4;
13
+ pointer-events: none;
14
+ }
15
+
16
+ .sg-slider-track {
17
+ position: relative;
18
+ box-sizing: border-box;
19
+ width: 100%;
20
+ height: 4px;
21
+ background: var(--sg-color-border);
22
+ border-radius: 2px;
23
+ cursor: pointer;
24
+ }
25
+
26
+ .sg-slider-fill {
27
+ position: absolute;
28
+ top: 0;
29
+ left: 0;
30
+ height: 100%;
31
+ background: var(--sg-color-primary);
32
+ border-radius: 2px;
33
+ }
34
+
35
+ .sg-slider-handle {
36
+ position: absolute;
37
+ top: 50%;
38
+ width: 14px;
39
+ height: 14px;
40
+ margin-top: -7px;
41
+ margin-left: -7px;
42
+ background: var(--sg-color-white);
43
+ border: 2px solid var(--sg-color-primary);
44
+ border-radius: 50%;
45
+ cursor: grab;
46
+ transition: box-shadow var(--sg-transition-duration);
47
+ }
48
+
49
+ .sg-slider-handle:hover {
50
+ box-shadow: 0 0 0 4px var(--sg-color-primary-bg);
51
+ }
@@ -0,0 +1,86 @@
1
+ /* === Spin circle — the core element === */
2
+ .sg-spin {
3
+ --sg-spin-color: var(--sg-color-primary);
4
+ --sg-spin-overlay-bg: rgba(255, 255, 255, 0.65);
5
+ display: inline-block;
6
+ border: 3px solid var(--sg-spin-color);
7
+ border-top-color: transparent;
8
+ border-radius: 50%;
9
+ animation: sg-spin-rotate 0.8s linear infinite;
10
+ vertical-align: middle;
11
+ }
12
+
13
+ /* Size variants */
14
+ .sg-spin-small { width: 12px; height: 12px; border-width: 1.5px; }
15
+ .sg-spin-default { width: 24px; height: 24px; border-width: 3px; }
16
+ .sg-spin-large { width: 36px; height: 36px; border-width: 4px; }
17
+
18
+ /* === Standalone (no children) === */
19
+ .sg-spin-standalone {
20
+ display: inline-flex;
21
+ flex-direction: column;
22
+ align-items: center;
23
+ gap: var(--sg-margin-sm);
24
+ }
25
+
26
+ /* === Container (wrapping children) === */
27
+ .sg-spin-container {
28
+ position: relative;
29
+ }
30
+
31
+ .sg-spin-overlay {
32
+ --sg-spin-overlay-bg: rgba(255, 255, 255, 0.65);
33
+ position: absolute;
34
+ top: 0;
35
+ left: 0;
36
+ width: 100%;
37
+ height: 100%;
38
+ display: flex;
39
+ flex-direction: column;
40
+ align-items: center;
41
+ justify-content: center;
42
+ gap: var(--sg-margin-sm);
43
+ z-index: var(--sg-z-loading);
44
+ background: var(--sg-spin-overlay-bg);
45
+ border-radius: var(--sg-border-radius);
46
+ }
47
+
48
+ [data-sg-theme="dark"] .sg-spin-overlay,
49
+ [data-sg-theme="dark"] .sg-spin-fullscreen {
50
+ --sg-spin-overlay-bg: rgba(20, 20, 20, 0.65);
51
+ }
52
+
53
+ .sg-spin-blur {
54
+ pointer-events: none;
55
+ user-select: none;
56
+ opacity: 0.4;
57
+ }
58
+
59
+ /* === Fullscreen === */
60
+ .sg-spin-fullscreen {
61
+ --sg-spin-overlay-bg: rgba(255, 255, 255, 0.65);
62
+ position: fixed;
63
+ inset: 0;
64
+ z-index: var(--sg-z-modal);
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ background: var(--sg-spin-overlay-bg);
69
+ }
70
+
71
+ .sg-spin-fullscreen-inner {
72
+ display: flex;
73
+ flex-direction: column;
74
+ align-items: center;
75
+ gap: var(--sg-margin-sm);
76
+ }
77
+
78
+ /* === Tip text === */
79
+ .sg-spin-tip {
80
+ color: var(--sg-color-primary);
81
+ font-size: var(--sg-font-size-sm);
82
+ }
83
+
84
+ @keyframes sg-spin-rotate {
85
+ to { transform: rotate(360deg); }
86
+ }
@@ -0,0 +1,185 @@
1
+ .sg-steps {
2
+ display: flex;
3
+ font-size: var(--sg-font-size);
4
+ color: var(--sg-color-text);
5
+ }
6
+
7
+ .sg-steps-horizontal {
8
+ flex-direction: row;
9
+ }
10
+
11
+ .sg-steps-vertical {
12
+ flex-direction: column;
13
+ }
14
+
15
+ /* Item */
16
+ .sg-steps-item {
17
+ position: relative;
18
+ flex: 1;
19
+ }
20
+
21
+ .sg-steps-vertical .sg-steps-item {
22
+ flex: none;
23
+ }
24
+
25
+ .sg-steps-item-clickable {
26
+ cursor: pointer;
27
+ }
28
+
29
+ .sg-steps-item-container {
30
+ display: flex;
31
+ align-items: flex-start;
32
+ gap: var(--sg-padding-sm);
33
+ }
34
+
35
+ /* Icon */
36
+ .sg-steps-item-icon {
37
+ flex-shrink: 0;
38
+ width: 32px;
39
+ height: 32px;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ border-radius: 50%;
44
+ border: 1px solid var(--sg-color-border);
45
+ font-size: var(--sg-font-size);
46
+ font-weight: 500;
47
+ transition: all var(--sg-transition-duration) var(--sg-transition-timing);
48
+ }
49
+
50
+ .sg-steps-small .sg-steps-item-icon {
51
+ width: 24px;
52
+ height: 24px;
53
+ font-size: var(--sg-font-size-sm);
54
+ }
55
+
56
+ .sg-steps-icon {
57
+ display: inline-flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ }
61
+
62
+ .sg-steps-icon-custom {
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ font-size: var(--sg-font-size-lg);
67
+ }
68
+
69
+ /* Status colors */
70
+ .sg-steps-item-process .sg-steps-item-icon {
71
+ background: var(--sg-color-primary);
72
+ border-color: var(--sg-color-primary);
73
+ color: var(--sg-color-white, #fff);
74
+ }
75
+
76
+ .sg-steps-item-finish .sg-steps-item-icon {
77
+ border-color: var(--sg-color-primary);
78
+ color: var(--sg-color-primary);
79
+ }
80
+
81
+ .sg-steps-item-wait .sg-steps-item-icon {
82
+ border-color: var(--sg-color-border);
83
+ color: var(--sg-color-text-disabled);
84
+ }
85
+
86
+ .sg-steps-item-error .sg-steps-item-icon {
87
+ border-color: var(--sg-color-error);
88
+ color: var(--sg-color-error);
89
+ }
90
+
91
+ /* Content */
92
+ .sg-steps-item-content {
93
+ min-width: 0;
94
+ }
95
+
96
+ .sg-steps-item-title {
97
+ display: flex;
98
+ align-items: center;
99
+ font-size: var(--sg-font-size);
100
+ font-weight: 500;
101
+ line-height: 32px;
102
+ color: var(--sg-color-text);
103
+ white-space: nowrap;
104
+ }
105
+
106
+ .sg-steps-small .sg-steps-item-title {
107
+ line-height: 24px;
108
+ font-size: var(--sg-font-size-sm);
109
+ }
110
+
111
+ .sg-steps-item-wait .sg-steps-item-title {
112
+ color: var(--sg-color-text-disabled);
113
+ }
114
+
115
+ .sg-steps-item-error .sg-steps-item-title {
116
+ color: var(--sg-color-error);
117
+ }
118
+
119
+ .sg-steps-item-description {
120
+ font-size: var(--sg-font-size-sm);
121
+ color: var(--sg-color-text-tertiary);
122
+ margin-top: var(--sg-margin-xs);
123
+ }
124
+
125
+ /* Horizontal tail (connector line) */
126
+ .sg-steps-item-tail {
127
+ flex: 1;
128
+ display: inline-block;
129
+ height: 1px;
130
+ margin: 0 var(--sg-margin-sm);
131
+ background: var(--sg-color-border-secondary);
132
+ vertical-align: middle;
133
+ min-width: 32px;
134
+ }
135
+
136
+ .sg-steps-item-finish .sg-steps-item-tail {
137
+ background: var(--sg-color-primary);
138
+ }
139
+
140
+ /* Vertical tail */
141
+ .sg-steps-item-tail-vertical {
142
+ position: absolute;
143
+ left: 15px;
144
+ top: 38px;
145
+ bottom: 0;
146
+ width: 1px;
147
+ background: var(--sg-color-border-secondary);
148
+ min-height: 24px;
149
+ }
150
+
151
+ .sg-steps-small .sg-steps-item-tail-vertical {
152
+ left: 11px;
153
+ top: 30px;
154
+ }
155
+
156
+ .sg-steps-item-finish .sg-steps-item-tail-vertical {
157
+ background: var(--sg-color-primary);
158
+ }
159
+
160
+ .sg-steps-vertical .sg-steps-item {
161
+ padding-bottom: var(--sg-padding-lg);
162
+ }
163
+
164
+ /* Navigation type */
165
+ .sg-steps-navigation {
166
+ border-bottom: 1px solid var(--sg-color-border-secondary);
167
+ }
168
+
169
+ .sg-steps-navigation .sg-steps-item-icon {
170
+ display: none;
171
+ }
172
+
173
+ .sg-steps-navigation .sg-steps-item {
174
+ padding: var(--sg-padding-sm) var(--sg-padding-lg);
175
+ border-bottom: 2px solid transparent;
176
+ margin-bottom: -1px;
177
+ }
178
+
179
+ .sg-steps-navigation .sg-steps-item-process {
180
+ border-bottom-color: var(--sg-color-primary);
181
+ }
182
+
183
+ .sg-steps-navigation .sg-steps-item-tail {
184
+ display: none;
185
+ }
@@ -0,0 +1,75 @@
1
+ .sg-switch {
2
+ /* Off state uses a dedicated token so demos can rebrand without
3
+ * touching `--sg-color-text-disabled` (which is also used by the
4
+ * disabled visual state — overriding it makes every control look
5
+ * disabled). */
6
+ --sg-switch-bg: var(--sg-color-fill, rgba(0, 0, 0, 0.25));
7
+ --sg-switch-bg-checked: var(--sg-color-primary);
8
+ position: relative;
9
+ display: inline-flex;
10
+ align-items: center;
11
+ min-width: 44px;
12
+ height: 22px;
13
+ padding: 0;
14
+ border: none;
15
+ border-radius: 11px;
16
+ background: var(--sg-switch-bg);
17
+ cursor: pointer;
18
+ transition: background var(--sg-transition-duration) var(--sg-transition-timing);
19
+ }
20
+
21
+ .sg-switch-small {
22
+ min-width: 28px;
23
+ height: 16px;
24
+ border-radius: 8px;
25
+ }
26
+
27
+ .sg-switch-checked {
28
+ background: var(--sg-switch-bg-checked);
29
+ }
30
+
31
+ .sg-switch-disabled {
32
+ opacity: 0.4;
33
+ cursor: not-allowed;
34
+ }
35
+
36
+ .sg-switch-handle {
37
+ position: absolute;
38
+ left: 2px;
39
+ width: 18px;
40
+ height: 18px;
41
+ border-radius: 50%;
42
+ background: var(--sg-color-white);
43
+ box-shadow: var(--sg-shadow-sm);
44
+ transition: left var(--sg-transition-duration) var(--sg-transition-timing);
45
+ }
46
+
47
+ .sg-switch-small .sg-switch-handle {
48
+ width: 12px;
49
+ height: 12px;
50
+ }
51
+
52
+ .sg-switch-checked .sg-switch-handle {
53
+ left: calc(100% - 20px);
54
+ }
55
+
56
+ .sg-switch-small.sg-switch-checked .sg-switch-handle {
57
+ left: calc(100% - 14px);
58
+ }
59
+
60
+ .sg-switch-inner {
61
+ display: flex;
62
+ align-items: center;
63
+ padding: 0 7px 0 25px;
64
+ font-size: var(--sg-font-size-sm);
65
+ color: var(--sg-color-white);
66
+ white-space: nowrap;
67
+ }
68
+
69
+ .sg-switch-checked .sg-switch-inner {
70
+ padding: 0 25px 0 7px;
71
+ }
72
+
73
+ .sg-switch-loading {
74
+ --sg-spin-color: var(--sg-color-white);
75
+ }