@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,309 @@
1
+ /* === Menu === */
2
+
3
+ .sg-menu {
4
+ margin: 0;
5
+ padding: var(--sg-padding-xs) 0;
6
+ list-style: none;
7
+ font-size: var(--sg-font-size);
8
+ color: var(--sg-color-text);
9
+ background: var(--sg-color-bg-container);
10
+ border-right: 1px solid var(--sg-color-border-secondary);
11
+ outline: none;
12
+ }
13
+
14
+ .sg-menu ul {
15
+ list-style: none;
16
+ margin: 0;
17
+ padding: 0;
18
+ }
19
+
20
+ /* --- Modes --- */
21
+
22
+ .sg-menu-horizontal {
23
+ display: flex;
24
+ flex-direction: row;
25
+ border-right: none;
26
+ border-bottom: 1px solid var(--sg-color-border-secondary);
27
+ padding: 0;
28
+ }
29
+
30
+ .sg-menu-vertical {
31
+ display: flex;
32
+ flex-direction: column;
33
+ }
34
+
35
+ .sg-menu-inline {
36
+ display: flex;
37
+ flex-direction: column;
38
+ }
39
+
40
+ /* --- Theme ---
41
+ *
42
+ * `.sg-menu-dark` is a self-contained dark variant: it must look right on
43
+ * any host surface (light app theme, dark app theme, custom wrapper),
44
+ * because `theme="dark"` is a per-menu flag, not an app theme switch. So
45
+ * the dark variant uses explicit dark colours and white-alpha overlays
46
+ * instead of semantic tokens — the latter cascade with the app theme
47
+ * and break the "always-dark menu" contract.
48
+ */
49
+
50
+ .sg-menu-dark {
51
+ background: var(--sg-gray-10);
52
+ color: rgba(255, 255, 255, 0.65);
53
+ border-color: transparent;
54
+ }
55
+
56
+ .sg-menu-dark .sg-menu-item {
57
+ color: rgba(255, 255, 255, 0.65);
58
+ }
59
+
60
+ .sg-menu-dark .sg-menu-item:hover {
61
+ color: rgba(255, 255, 255, 0.88);
62
+ background: rgba(255, 255, 255, 0.08);
63
+ }
64
+
65
+ .sg-menu-dark .sg-menu-item-selected,
66
+ .sg-menu-dark .sg-menu-item-selected:hover {
67
+ color: #fff;
68
+ background: var(--sg-color-primary);
69
+ }
70
+
71
+ .sg-menu-dark .sg-menu-item-disabled,
72
+ .sg-menu-dark .sg-menu-item-disabled:hover {
73
+ color: rgba(255, 255, 255, 0.25);
74
+ background: transparent;
75
+ }
76
+
77
+ .sg-menu-dark .sg-menu-divider {
78
+ background: rgba(255, 255, 255, 0.08);
79
+ }
80
+
81
+ .sg-menu-dark .sg-menu-group-title {
82
+ color: rgba(255, 255, 255, 0.45);
83
+ }
84
+
85
+ /* --- Collapsed --- */
86
+
87
+ .sg-menu-collapsed {
88
+ width: 56px;
89
+ }
90
+
91
+ .sg-menu-collapsed .sg-menu-item {
92
+ justify-content: center;
93
+ padding: var(--sg-padding-sm);
94
+ }
95
+
96
+ .sg-menu-collapsed .sg-menu-submenu-arrow {
97
+ display: none;
98
+ }
99
+
100
+ /* --- Menu item --- */
101
+
102
+ .sg-menu-item {
103
+ display: flex;
104
+ align-items: center;
105
+ gap: var(--sg-padding-sm);
106
+ padding: var(--sg-padding-xs) var(--sg-padding-lg);
107
+ cursor: pointer;
108
+ color: var(--sg-color-text);
109
+ line-height: var(--sg-line-height);
110
+ min-height: var(--sg-height-md);
111
+ transition:
112
+ background var(--sg-transition-duration) var(--sg-transition-timing),
113
+ color var(--sg-transition-duration) var(--sg-transition-timing);
114
+ user-select: none;
115
+ white-space: nowrap;
116
+ }
117
+
118
+ .sg-menu-item:hover {
119
+ background: var(--sg-color-bg-hover);
120
+ }
121
+
122
+ .sg-menu-item-selected {
123
+ color: var(--sg-color-primary);
124
+ background: var(--sg-color-primary-bg);
125
+ }
126
+
127
+ .sg-menu-item-disabled {
128
+ color: var(--sg-color-text-disabled);
129
+ cursor: not-allowed;
130
+ }
131
+
132
+ .sg-menu-item-disabled:hover {
133
+ background: none;
134
+ }
135
+
136
+ .sg-menu-item-danger {
137
+ color: var(--sg-color-error);
138
+ }
139
+
140
+ .sg-menu-item-danger:hover {
141
+ background: var(--sg-color-error-bg);
142
+ }
143
+
144
+ /* --- Icon & label --- */
145
+
146
+ .sg-menu-item-icon {
147
+ display: inline-flex;
148
+ align-items: center;
149
+ font-size: var(--sg-font-size-lg);
150
+ flex-shrink: 0;
151
+ }
152
+
153
+ .sg-menu-item-label {
154
+ flex: 1;
155
+ overflow: hidden;
156
+ text-overflow: ellipsis;
157
+ }
158
+
159
+ /* --- Submenu arrow --- */
160
+
161
+ .sg-menu-submenu-arrow {
162
+ display: inline-block;
163
+ width: 10px;
164
+ height: 10px;
165
+ margin-left: auto;
166
+ position: relative;
167
+ flex-shrink: 0;
168
+ }
169
+
170
+ .sg-menu-submenu-arrow::before,
171
+ .sg-menu-submenu-arrow::after {
172
+ content: '';
173
+ position: absolute;
174
+ width: 6px;
175
+ height: 1.5px;
176
+ background: currentColor;
177
+ border-radius: 1px;
178
+ transition: transform var(--sg-transition-duration) var(--sg-transition-timing);
179
+ }
180
+
181
+ .sg-menu-submenu-arrow::before {
182
+ transform: rotate(45deg) translateX(2px);
183
+ top: 4px;
184
+ left: 0;
185
+ }
186
+
187
+ .sg-menu-submenu-arrow::after {
188
+ transform: rotate(-45deg) translateX(-2px);
189
+ top: 4px;
190
+ left: 0;
191
+ }
192
+
193
+ .sg-menu-submenu-arrow-open::before {
194
+ transform: rotate(-45deg) translateX(2px);
195
+ }
196
+
197
+ .sg-menu-submenu-arrow-open::after {
198
+ transform: rotate(45deg) translateX(-2px);
199
+ }
200
+
201
+ /* Horizontal mode arrow points down */
202
+ .sg-menu-horizontal .sg-menu-submenu-arrow::before {
203
+ transform: rotate(45deg) translateY(0);
204
+ top: 3px;
205
+ left: 0;
206
+ }
207
+
208
+ .sg-menu-horizontal .sg-menu-submenu-arrow::after {
209
+ transform: rotate(-45deg) translateY(0);
210
+ top: 3px;
211
+ left: 3px;
212
+ }
213
+
214
+ /* --- Inline submenu --- */
215
+
216
+ .sg-menu-inline-sub {
217
+ max-height: 0;
218
+ overflow: hidden;
219
+ transition: max-height 0.3s var(--sg-transition-timing);
220
+ }
221
+
222
+ .sg-menu-inline-sub-open {
223
+ max-height: 500px;
224
+ }
225
+
226
+ /* --- Popup submenu (vertical / horizontal) --- */
227
+
228
+ .sg-menu-submenu-wrapper {
229
+ position: relative;
230
+ }
231
+
232
+ .sg-menu-popup {
233
+ position: absolute;
234
+ z-index: var(--sg-z-dropdown);
235
+ min-width: 160px;
236
+ padding: var(--sg-padding-xs) 0;
237
+ background: var(--sg-color-bg-elevated);
238
+ border-radius: var(--sg-border-radius-lg);
239
+ box-shadow: var(--sg-shadow-lg);
240
+ border: 1px solid var(--sg-color-border-secondary);
241
+ list-style: none;
242
+ animation: sg-menu-popup-in var(--sg-transition-duration) var(--sg-transition-timing);
243
+ }
244
+
245
+ .sg-menu-vertical .sg-menu-popup {
246
+ left: 100%;
247
+ top: 0;
248
+ }
249
+
250
+ .sg-menu-horizontal > li > .sg-menu-popup {
251
+ left: 0;
252
+ top: 100%;
253
+ }
254
+
255
+ @keyframes sg-menu-popup-in {
256
+ from {
257
+ opacity: 0;
258
+ transform: scaleY(0.8);
259
+ }
260
+ to {
261
+ opacity: 1;
262
+ transform: scaleY(1);
263
+ }
264
+ }
265
+
266
+ /* --- Divider --- */
267
+
268
+ .sg-menu-divider {
269
+ height: 1px;
270
+ margin: var(--sg-margin-xs) var(--sg-padding-md);
271
+ background: var(--sg-color-border-secondary);
272
+ list-style: none;
273
+ }
274
+
275
+ /* --- Group --- */
276
+
277
+ .sg-menu-group {
278
+ list-style: none;
279
+ }
280
+
281
+ .sg-menu-group-title {
282
+ padding: var(--sg-padding-xs) var(--sg-padding-lg);
283
+ color: var(--sg-color-text-tertiary);
284
+ font-size: var(--sg-font-size-sm);
285
+ line-height: var(--sg-line-height);
286
+ }
287
+
288
+ .sg-menu-group-list {
289
+ list-style: none;
290
+ margin: 0;
291
+ padding: 0;
292
+ }
293
+
294
+ /* --- Horizontal item spacing --- */
295
+
296
+ .sg-menu-horizontal > li > .sg-menu-item {
297
+ padding: var(--sg-padding-sm) var(--sg-padding-lg);
298
+ border-bottom: 2px solid transparent;
299
+ }
300
+
301
+ .sg-menu-horizontal > li > .sg-menu-item-selected {
302
+ border-bottom-color: var(--sg-color-primary);
303
+ background: none;
304
+ }
305
+
306
+ .sg-menu-horizontal > li > .sg-menu-item:hover {
307
+ border-bottom-color: var(--sg-color-primary-hover);
308
+ background: none;
309
+ }
@@ -0,0 +1,77 @@
1
+ .sg-modal-mask {
2
+ position: fixed;
3
+ inset: 0;
4
+ z-index: var(--sg-z-modal);
5
+ background: var(--sg-color-overlay);
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ }
10
+
11
+ /* dark override handled via --sg-color-overlay token */
12
+
13
+ .sg-modal {
14
+ /* Width is forwarded from the React `width` prop via this CSS variable
15
+ * so the component no longer has to emit an inline `style={{ width }}`.
16
+ * Default mirrors the historical antd-compatible 520px modal width. */
17
+ --sg-modal-width: 520px;
18
+
19
+ position: relative;
20
+ background: var(--sg-color-bg-elevated);
21
+ border-radius: var(--sg-border-radius-lg);
22
+ box-shadow: var(--sg-shadow-lg);
23
+ max-height: 80vh;
24
+ display: flex;
25
+ flex-direction: column;
26
+ width: var(--sg-modal-width);
27
+ }
28
+
29
+ .sg-modal-header {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: space-between;
33
+ padding: var(--sg-padding-lg);
34
+ border-bottom: 1px solid var(--sg-color-border-secondary);
35
+ }
36
+
37
+ .sg-modal-title {
38
+ font-size: var(--sg-font-size-lg);
39
+ font-weight: 600;
40
+ color: var(--sg-color-text);
41
+ }
42
+
43
+ .sg-modal-close {
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ width: 32px;
48
+ height: 32px;
49
+ border: none;
50
+ background: transparent;
51
+ font-size: var(--sg-font-size-xl);
52
+ color: var(--sg-color-text-tertiary);
53
+ cursor: pointer;
54
+ border-radius: var(--sg-border-radius-sm);
55
+ transition:
56
+ color var(--sg-transition-duration),
57
+ background var(--sg-transition-duration);
58
+ }
59
+
60
+ .sg-modal-close:hover {
61
+ color: var(--sg-color-text);
62
+ background: var(--sg-color-bg-hover);
63
+ }
64
+
65
+ .sg-modal-body {
66
+ padding: var(--sg-padding-lg);
67
+ overflow-y: auto;
68
+ flex: 1;
69
+ }
70
+
71
+ .sg-modal-footer {
72
+ display: flex;
73
+ justify-content: flex-end;
74
+ gap: var(--sg-padding-sm);
75
+ padding: var(--sg-padding-md) var(--sg-padding-lg);
76
+ border-top: 1px solid var(--sg-color-border-secondary);
77
+ }
@@ -0,0 +1,128 @@
1
+ .sg-notification-container {
2
+ position: fixed;
3
+ z-index: var(--sg-z-notification);
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--sg-margin-sm);
7
+ pointer-events: none;
8
+ }
9
+
10
+ /* Placement variants — see dropdown.css note: both camelCase (legacy) and
11
+ * kebab-case (canonical) selectors are kept in sync. */
12
+ .sg-notification-topRight,
13
+ .sg-notification-top-right {
14
+ top: var(--sg-padding-xl);
15
+ right: var(--sg-padding-xl);
16
+ }
17
+
18
+ .sg-notification-topLeft,
19
+ .sg-notification-top-left {
20
+ top: var(--sg-padding-xl);
21
+ left: var(--sg-padding-xl);
22
+ }
23
+
24
+ .sg-notification-bottomRight,
25
+ .sg-notification-bottom-right {
26
+ bottom: var(--sg-padding-xl);
27
+ right: var(--sg-padding-xl);
28
+ }
29
+
30
+ .sg-notification-bottomLeft,
31
+ .sg-notification-bottom-left {
32
+ bottom: var(--sg-padding-xl);
33
+ left: var(--sg-padding-xl);
34
+ }
35
+
36
+ .sg-notification {
37
+ display: flex;
38
+ align-items: flex-start;
39
+ gap: var(--sg-padding-sm);
40
+ min-width: 300px;
41
+ max-width: 400px;
42
+ padding: var(--sg-padding-md) var(--sg-padding-lg);
43
+ background: var(--sg-color-bg-elevated);
44
+ border-radius: var(--sg-border-radius-lg);
45
+ box-shadow: var(--sg-shadow-lg);
46
+ border: 1px solid var(--sg-color-border-secondary);
47
+ pointer-events: auto;
48
+ animation: sg-notification-in var(--sg-transition-duration) var(--sg-transition-timing);
49
+ }
50
+
51
+ @keyframes sg-notification-in {
52
+ from {
53
+ opacity: 0;
54
+ transform: translateX(100%);
55
+ }
56
+ to {
57
+ opacity: 1;
58
+ transform: translateX(0);
59
+ }
60
+ }
61
+
62
+ .sg-notification-icon {
63
+ flex-shrink: 0;
64
+ width: 20px;
65
+ height: 20px;
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ border-radius: 50%;
70
+ font-size: var(--sg-font-size-sm);
71
+ font-weight: 700;
72
+ line-height: 1;
73
+ }
74
+
75
+ .sg-notification-success .sg-notification-icon {
76
+ color: var(--sg-color-success);
77
+ background: var(--sg-color-success-bg);
78
+ }
79
+
80
+ .sg-notification-error .sg-notification-icon {
81
+ color: var(--sg-color-error);
82
+ background: var(--sg-color-error-bg);
83
+ }
84
+
85
+ .sg-notification-warning .sg-notification-icon {
86
+ color: var(--sg-color-warning);
87
+ background: var(--sg-color-warning-bg);
88
+ }
89
+
90
+ .sg-notification-info .sg-notification-icon {
91
+ color: var(--sg-color-primary);
92
+ background: var(--sg-color-primary-bg);
93
+ }
94
+
95
+ .sg-notification-content {
96
+ flex: 1;
97
+ min-width: 0;
98
+ }
99
+
100
+ .sg-notification-message {
101
+ font-size: var(--sg-font-size);
102
+ font-weight: 500;
103
+ color: var(--sg-color-text);
104
+ line-height: var(--sg-line-height);
105
+ }
106
+
107
+ .sg-notification-description {
108
+ font-size: var(--sg-font-size-sm);
109
+ color: var(--sg-color-text-secondary);
110
+ margin-top: var(--sg-margin-xs);
111
+ line-height: var(--sg-line-height);
112
+ }
113
+
114
+ .sg-notification-close {
115
+ flex-shrink: 0;
116
+ border: none;
117
+ background: none;
118
+ color: var(--sg-color-text-tertiary);
119
+ cursor: pointer;
120
+ font-size: var(--sg-font-size-lg);
121
+ line-height: 1;
122
+ padding: 0;
123
+ transition: color var(--sg-transition-duration) var(--sg-transition-timing);
124
+ }
125
+
126
+ .sg-notification-close:hover {
127
+ color: var(--sg-color-text);
128
+ }
@@ -0,0 +1,162 @@
1
+ /* inline-flex: shrink-wrap to content so wide parents (e.g. doc previews)
2
+ don't leave a dead zone to the right of the controls. */
3
+ .sg-pagination {
4
+ display: inline-flex;
5
+ flex-wrap: wrap;
6
+ align-items: center;
7
+ gap: var(--sg-margin-xs);
8
+ row-gap: var(--sg-padding-sm);
9
+ font-size: var(--sg-font-size);
10
+ max-width: 100%;
11
+ }
12
+
13
+ .sg-pagination-disabled {
14
+ opacity: 0.5;
15
+ pointer-events: none;
16
+ }
17
+
18
+ .sg-pagination-item {
19
+ display: inline-flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ /* Lock the cell to a square so 1-, 2- and 3-digit pages render at the
23
+ * same width — combined with the 7-slot `buildPages` shape this keeps
24
+ * the strip width identical on every page transition (no layout jump
25
+ * between page 1 → 8 → 50). */
26
+ min-width: var(--sg-height-md);
27
+ width: var(--sg-height-md);
28
+ height: var(--sg-height-md);
29
+ padding: 0 var(--sg-padding-xs);
30
+ border: 1px solid var(--sg-color-border);
31
+ border-radius: var(--sg-border-radius);
32
+ background: var(--sg-color-bg);
33
+ color: var(--sg-color-text);
34
+ cursor: pointer;
35
+ transition: all var(--sg-transition-duration) var(--sg-transition-timing);
36
+ font-size: var(--sg-font-size);
37
+ line-height: 1;
38
+ }
39
+
40
+ /* Prev/next still inherit the square base but auto-grow for wider arrow
41
+ * glyphs / labels on RTL locales. */
42
+ .sg-pagination-prev,
43
+ .sg-pagination-next {
44
+ width: auto;
45
+ min-width: var(--sg-height-md);
46
+ }
47
+
48
+ .sg-pagination-item:hover:not(:disabled) {
49
+ color: var(--sg-color-primary);
50
+ border-color: var(--sg-color-primary);
51
+ }
52
+
53
+ .sg-pagination-item:disabled {
54
+ color: var(--sg-color-text-disabled);
55
+ cursor: not-allowed;
56
+ border-color: var(--sg-color-border);
57
+ }
58
+
59
+ .sg-pagination-item-active {
60
+ color: var(--sg-color-white, #fff);
61
+ background: var(--sg-color-primary);
62
+ border-color: var(--sg-color-primary);
63
+ }
64
+
65
+ .sg-pagination-item-active:hover:not(:disabled) {
66
+ color: var(--sg-color-white, #fff);
67
+ background: var(--sg-color-primary-hover);
68
+ border-color: var(--sg-color-primary-hover);
69
+ }
70
+
71
+ .sg-pagination-ellipsis {
72
+ display: inline-flex;
73
+ align-items: center;
74
+ justify-content: center;
75
+ min-width: var(--sg-height-md);
76
+ height: var(--sg-height-md);
77
+ color: var(--sg-color-text-disabled);
78
+ letter-spacing: 2px;
79
+ }
80
+
81
+ .sg-pagination-total {
82
+ color: var(--sg-color-text-secondary);
83
+ font-size: var(--sg-font-size-sm);
84
+ white-space: nowrap;
85
+ }
86
+
87
+ .sg-pagination-size-changer {
88
+ height: var(--sg-height-md);
89
+ padding: 0 var(--sg-padding-sm);
90
+ border: 1px solid var(--sg-color-border);
91
+ border-radius: var(--sg-border-radius);
92
+ background: var(--sg-color-bg);
93
+ color: var(--sg-color-text);
94
+ font-size: var(--sg-font-size-sm);
95
+ font-family: inherit;
96
+ cursor: pointer;
97
+ transition: border-color var(--sg-transition-duration) var(--sg-transition-timing);
98
+ }
99
+
100
+ .sg-pagination-size-changer:hover:not(:disabled) {
101
+ border-color: var(--sg-color-primary);
102
+ }
103
+
104
+ /* Native <select> draws its own focus ring — reset outline and use one
105
+ soft ring so we don't stack a second halo on top of the browser chrome. */
106
+ .sg-pagination-size-changer:focus,
107
+ .sg-pagination-size-changer:focus-visible {
108
+ outline: none;
109
+ }
110
+
111
+ .sg-pagination-size-changer:focus-visible {
112
+ border-color: var(--sg-color-primary);
113
+ box-shadow: 0 0 0 2px var(--sg-color-primary-bg);
114
+ }
115
+
116
+ .sg-pagination-quick-jumper {
117
+ display: inline-flex;
118
+ align-items: center;
119
+ gap: var(--sg-padding-xs);
120
+ color: var(--sg-color-text-secondary);
121
+ font-size: var(--sg-font-size-sm);
122
+ white-space: nowrap;
123
+ }
124
+
125
+ .sg-pagination-jumper-input {
126
+ box-sizing: border-box;
127
+ width: 52px;
128
+ min-width: 52px;
129
+ height: var(--sg-height-md);
130
+ padding: 0 var(--sg-padding-xs);
131
+ border: 1px solid var(--sg-color-border);
132
+ border-radius: var(--sg-border-radius);
133
+ background: var(--sg-color-bg);
134
+ color: var(--sg-color-text);
135
+ font-size: var(--sg-font-size-sm);
136
+ font-family: inherit;
137
+ text-align: center;
138
+ transition: border-color var(--sg-transition-duration) var(--sg-transition-timing);
139
+ }
140
+
141
+ .sg-pagination-jumper-input:hover:not(:disabled) {
142
+ border-color: var(--sg-color-primary);
143
+ }
144
+
145
+ .sg-pagination-jumper-input:focus,
146
+ .sg-pagination-jumper-input:focus-visible {
147
+ outline: none;
148
+ }
149
+
150
+ .sg-pagination-jumper-input:focus-visible {
151
+ border-color: var(--sg-color-primary);
152
+ box-shadow: 0 0 0 2px var(--sg-color-primary-bg);
153
+ }
154
+
155
+ .sg-pagination-simple {
156
+ gap: var(--sg-padding-sm);
157
+ }
158
+
159
+ .sg-pagination-simple-pager {
160
+ color: var(--sg-color-text);
161
+ font-size: var(--sg-font-size);
162
+ }