cynx-ui 1.3.19 → 1.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ActionsMenu.jsx +39 -30
- package/components/ActivityCard.jsx +16 -16
- package/components/AuthOverlay.jsx +3 -3
- package/components/BrandingCard.jsx +19 -19
- package/components/Button.jsx +4 -4
- package/components/Checkbox.jsx +2 -2
- package/components/ChipSelect.jsx +4 -4
- package/components/CircularProgress.jsx +3 -3
- package/components/Confirm.jsx +6 -6
- package/components/DatePicker.jsx +45 -45
- package/components/Dropzone.jsx +17 -17
- package/components/FilePicker.jsx +17 -17
- package/components/HoverCard.jsx +4 -4
- package/components/ImageUpload.jsx +19 -19
- package/components/Input.jsx +3 -3
- package/components/LineProgress.jsx +1 -1
- package/components/Modal.jsx +15 -15
- package/components/Pagination.jsx +5 -5
- package/components/Select.jsx +24 -24
- package/components/Spinner.jsx +4 -4
- package/components/StatBarCard.jsx +1 -1
- package/components/StatsBar.jsx +4 -4
- package/components/StatsCard.jsx +2 -2
- package/components/TabBar.jsx +6 -6
- package/components/TimePicker.jsx +69 -70
- package/components/Toast.jsx +2 -2
- package/components/UptimeBar.jsx +17 -17
- package/index.js +95 -101
- package/package.json +1 -1
- package/components/Dropdown.jsx +0 -124
- package/components/MultiSelect.jsx +0 -173
- package/components/SearchableDropdown.jsx +0 -132
package/components/Modal.jsx
CHANGED
|
@@ -11,14 +11,14 @@ const STYLES = `
|
|
|
11
11
|
z-index: 8000; padding: 20px;
|
|
12
12
|
}
|
|
13
13
|
.modal {
|
|
14
|
-
background: var(--surface); border: 1px solid var(--border);
|
|
14
|
+
background: var(--surface, #ffffff); border: 1px solid var(--border, #e2e8f0);
|
|
15
15
|
border-radius: 14px; width: 100%; max-width: 480px;
|
|
16
|
-
box-shadow: var(--shadow-lg);
|
|
16
|
+
box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.06));
|
|
17
17
|
overflow: visible;
|
|
18
18
|
}
|
|
19
19
|
.modal-hdr {
|
|
20
20
|
display: flex; align-items: center; justify-content: space-between;
|
|
21
|
-
padding: 15px 20px; border-bottom: 1px solid var(--border-light);
|
|
21
|
+
padding: 15px 20px; border-bottom: 1px solid var(--border-light, #ebebf0);
|
|
22
22
|
border-radius: 14px 14px 0 0;
|
|
23
23
|
flex-shrink: 0;
|
|
24
24
|
}
|
|
@@ -26,21 +26,21 @@ const STYLES = `
|
|
|
26
26
|
.modal-body { padding: 20px; overflow-x: hidden; overflow-y: auto; flex: 1 1 auto; min-height: 0; }
|
|
27
27
|
.modal-footer {
|
|
28
28
|
display: flex; justify-content: flex-end; gap: 8px;
|
|
29
|
-
padding: 13px 20px; border-top: 1px solid var(--border-light);
|
|
30
|
-
background: var(--grey-1); border-radius: 0 0 14px 14px;
|
|
29
|
+
padding: 13px 20px; border-top: 1px solid var(--border-light, #ebebf0);
|
|
30
|
+
background: var(--grey-1, #f5f5f8); border-radius: 0 0 14px 14px;
|
|
31
31
|
flex-shrink: 0;
|
|
32
32
|
}
|
|
33
33
|
.modal-card {
|
|
34
|
-
background: var(--surface); border: 1px solid var(--border);
|
|
34
|
+
background: var(--surface, #ffffff); border: 1px solid var(--border, #e2e8f0);
|
|
35
35
|
border-radius: 14px; width: 100%; max-width: 480px; max-height: 60vh;
|
|
36
|
-
box-shadow: var(--shadow-lg); overflow: hidden;
|
|
36
|
+
box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.06)); overflow: hidden;
|
|
37
37
|
display: flex; flex-direction: column;
|
|
38
38
|
}
|
|
39
39
|
.modal-close {
|
|
40
40
|
background: none; border: none; cursor: pointer; padding: 4px; border-radius: 6px;
|
|
41
|
-
color: var(--muted); display: flex; align-items: center; transition: all .14s;
|
|
41
|
+
color: var(--muted, #797b8d); display: flex; align-items: center; transition: all .14s;
|
|
42
42
|
}
|
|
43
|
-
.modal-close:hover { color: var(--primary-text); background: var(--grey-1); }
|
|
43
|
+
.modal-close:hover { color: var(--primary-text, #0f172a); background: var(--grey-1, #f5f5f8); }
|
|
44
44
|
.confirm-icon {
|
|
45
45
|
width: 48px; height: 48px; border-radius: 50%; margin: 0 auto 12px;
|
|
46
46
|
display: flex; align-items: center; justify-content: center;
|
|
@@ -150,7 +150,7 @@ export function Modal({ open, onClose, onBeforeClose, title, children, footer, m
|
|
|
150
150
|
<div
|
|
151
151
|
className="modal-card"
|
|
152
152
|
style={{
|
|
153
|
-
background: 'var(--surface)', border: '1px solid var(--border)',
|
|
153
|
+
background: 'var(--surface, #ffffff)', border: '1px solid var(--border, #e2e8f0)',
|
|
154
154
|
borderRadius: 14, width: '100%',
|
|
155
155
|
maxWidth: style?.maxWidth || maxWidth,
|
|
156
156
|
maxHeight: resolvedMaxHeight,
|
|
@@ -163,7 +163,7 @@ export function Modal({ open, onClose, onBeforeClose, title, children, footer, m
|
|
|
163
163
|
>
|
|
164
164
|
<div className="modal-hdr" style={{
|
|
165
165
|
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
|
166
|
-
padding: '15px 20px', borderBottom: '1px solid var(--border-light)',
|
|
166
|
+
padding: '15px 20px', borderBottom: '1px solid var(--border-light, #ebebf0)',
|
|
167
167
|
borderRadius: '14px 14px 0 0', flexShrink: 0,
|
|
168
168
|
}}>
|
|
169
169
|
<span className="modal-title" style={{ fontSize: '.88rem', fontWeight: 700, letterSpacing: '-.01em' }}>{title}</span>
|
|
@@ -171,8 +171,8 @@ export function Modal({ open, onClose, onBeforeClose, title, children, footer, m
|
|
|
171
171
|
<div className="modal-body" style={{ padding: 20, overflowX: 'hidden', overflowY: 'auto', flex: '1 1 auto', minHeight: 0, ...bodyStyle }}>{resolvedChildren}</div>
|
|
172
172
|
{resolvedFooter && <div className="modal-footer" style={{
|
|
173
173
|
display: 'flex', justifyContent: 'flex-end', gap: 8,
|
|
174
|
-
padding: '13px 20px', borderTop: '1px solid var(--border-light)',
|
|
175
|
-
background: 'var(--grey-1)', borderRadius: '0 0 14px 14px', flexShrink: 0,
|
|
174
|
+
padding: '13px 20px', borderTop: '1px solid var(--border-light, #ebebf0)',
|
|
175
|
+
background: 'var(--grey-1, #f5f5f8)', borderRadius: '0 0 14px 14px', flexShrink: 0,
|
|
176
176
|
}}>{resolvedFooter}</div>}
|
|
177
177
|
</div>
|
|
178
178
|
</div>,
|
|
@@ -181,7 +181,7 @@ export function Modal({ open, onClose, onBeforeClose, title, children, footer, m
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
export function Confirm({ open, onClose, onConfirm, title, message, variant = 'danger', confirmLabel = 'Confirm', loading = false }) {
|
|
184
|
-
const iconColor = { danger: 'var(--danger)', warning: 'var(--accent)', info: 'var(--blue)' }[variant] || 'var(--danger)';
|
|
184
|
+
const iconColor = { danger: 'var(--danger, #f64747)', warning: 'var(--accent, #f99e2c)', info: 'var(--blue, #2782e4)' }[variant] || 'var(--danger, #f64747)';
|
|
185
185
|
const btnVariant = variant === 'danger' ? 'danger' : 'primary';
|
|
186
186
|
|
|
187
187
|
const icon = variant === 'danger'
|
|
@@ -205,7 +205,7 @@ export function Confirm({ open, onClose, onConfirm, title, message, variant = 'd
|
|
|
205
205
|
background: variant === 'danger' ? 'var(--dd, rgba(246,71,71,.1))' : variant === 'warning' ? 'var(--pd, rgba(249,158,44,.1))' : 'var(--infd, rgba(39,130,228,.1))',
|
|
206
206
|
}}>{icon}</div>
|
|
207
207
|
<div style={{ fontSize: '.9rem', fontWeight: 700, marginBottom: 8 }}>{title}</div>
|
|
208
|
-
{message && <div style={{ fontSize: '.8rem', color: 'var(--muted)', lineHeight: 1.5 }}>{message}</div>}
|
|
208
|
+
{message && <div style={{ fontSize: '.8rem', color: 'var(--muted, #797b8d)', lineHeight: 1.5 }}>{message}</div>}
|
|
209
209
|
</div>
|
|
210
210
|
</Modal>
|
|
211
211
|
);
|
|
@@ -18,12 +18,12 @@ export function Pagination({ page, pages, total, perPage, onChange }) {
|
|
|
18
18
|
<div style={{
|
|
19
19
|
display: 'flex', alignItems: 'center', justifyContent: 'space-between',
|
|
20
20
|
padding: '10px 16px',
|
|
21
|
-
borderTop: '1px solid var(--border-light)',
|
|
22
|
-
background: 'var(--surface)',
|
|
23
|
-
borderRadius: '0 0 var(--rad) var(--rad)',
|
|
21
|
+
borderTop: '1px solid var(--border-light, #ebebf0)',
|
|
22
|
+
background: 'var(--surface, #ffffff)',
|
|
23
|
+
borderRadius: '0 0 var(--rad, 10px) var(--rad, 10px)',
|
|
24
24
|
}}>
|
|
25
25
|
{start !== null && (
|
|
26
|
-
<div style={{ fontSize: '.72rem', color: 'var(--muted)', fontFamily: 'var(--mono)' }}>
|
|
26
|
+
<div style={{ fontSize: '.72rem', color: 'var(--muted, #797b8d)', fontFamily: 'var(--mono, ui-monospace, monospace)' }}>
|
|
27
27
|
{start}–{end} of {total}
|
|
28
28
|
</div>
|
|
29
29
|
)}
|
|
@@ -31,7 +31,7 @@ export function Pagination({ page, pages, total, perPage, onChange }) {
|
|
|
31
31
|
<Button variant="ghost" size="xs" icon={<ChevronLeft size={14} />} onClick={() => onChange(page - 1)} disabled={page <= 1} />
|
|
32
32
|
{items.map((item, i) =>
|
|
33
33
|
item === '...'
|
|
34
|
-
? <span key={`e${i}`} style={{ padding: '0 4px', color: 'var(--muted)', fontSize: '.78rem' }}>…</span>
|
|
34
|
+
? <span key={`e${i}`} style={{ padding: '0 4px', color: 'var(--muted, #797b8d)', fontSize: '.78rem' }}>…</span>
|
|
35
35
|
: <Button key={item} variant={item === page ? 'primary' : 'no-line'} size="xs" onClick={() => onChange(item)} style={{ minWidth: 28 }}>{item}</Button>
|
|
36
36
|
)}
|
|
37
37
|
<Button variant="ghost" size="xs" icon={<ChevronRight size={14} />} onClick={() => onChange(page + 1)} disabled={page >= totalPages} />
|
package/components/Select.jsx
CHANGED
|
@@ -168,7 +168,7 @@ export default function Select({
|
|
|
168
168
|
: typeof rounded === 'number'
|
|
169
169
|
? `${rounded}px`
|
|
170
170
|
: '6px')
|
|
171
|
-
: (size === 'xs' ? '4px' : size === 'sm' ? '6px' : 'var(--rmd,var(--rads))');
|
|
171
|
+
: (size === 'xs' ? '4px' : size === 'sm' ? '6px' : 'var(--rmd,var(--rads, 8px))');
|
|
172
172
|
|
|
173
173
|
return (
|
|
174
174
|
<div
|
|
@@ -177,7 +177,7 @@ export default function Select({
|
|
|
177
177
|
position: 'relative',
|
|
178
178
|
width: '100%',
|
|
179
179
|
boxSizing: 'border-box',
|
|
180
|
-
fontFamily: 'var(--f,var(--sans))',
|
|
180
|
+
fontFamily: 'var(--f,var(--sans, inherit))',
|
|
181
181
|
opacity: disabled ? 0.5 : 1,
|
|
182
182
|
pointerEvents: disabled ? 'none' : undefined,
|
|
183
183
|
...style,
|
|
@@ -194,14 +194,14 @@ export default function Select({
|
|
|
194
194
|
gap: 4,
|
|
195
195
|
padding: paddingVal,
|
|
196
196
|
height: heightVal,
|
|
197
|
-
background: 'var(--sf,var(--surface))',
|
|
198
|
-
border: `1px solid ${open ? 'var(--accent)' : 'var(--bd2,var(--border))'}`,
|
|
197
|
+
background: 'var(--sf,var(--surface, #ffffff))',
|
|
198
|
+
border: `1px solid ${open ? 'var(--accent, #f99e2c)' : 'var(--bd2,var(--border, #e2e8f0))'}`,
|
|
199
199
|
borderRadius: radiusVal,
|
|
200
200
|
cursor: 'pointer',
|
|
201
201
|
fontFamily: 'var(--f,var(--sans,inherit))',
|
|
202
202
|
fontSize: fontSizeVal,
|
|
203
203
|
lineHeight: 1.2,
|
|
204
|
-
color: 'var(--t,var(--primary-text))',
|
|
204
|
+
color: 'var(--t,var(--primary-text, #0f172a))',
|
|
205
205
|
outline: 'none',
|
|
206
206
|
transition: 'border-color var(--tr,.15s), box-shadow var(--tr,.15s)',
|
|
207
207
|
boxShadow: open ? 'var(--infd, rgba(37,99,235,.1))' : 'var(--shadow,0 1px 3px rgba(20,22,41,.1))',
|
|
@@ -216,12 +216,12 @@ export default function Select({
|
|
|
216
216
|
alignItems: 'center',
|
|
217
217
|
gap: 4,
|
|
218
218
|
padding: '2px 6px',
|
|
219
|
-
background: 'var(--pd,var(--accent-bg))',
|
|
220
|
-
border: '1px solid var(--accent)',
|
|
219
|
+
background: 'var(--pd,var(--accent-bg, rgba(249,158,44,.1)))',
|
|
220
|
+
border: '1px solid var(--accent, #f99e2c)',
|
|
221
221
|
borderRadius: 4,
|
|
222
222
|
fontSize: 11,
|
|
223
223
|
fontWeight: 600,
|
|
224
|
-
color: 'var(--accent)',
|
|
224
|
+
color: 'var(--accent, #f99e2c)',
|
|
225
225
|
whiteSpace: 'nowrap',
|
|
226
226
|
maxWidth: 140,
|
|
227
227
|
opacity: 0.85,
|
|
@@ -240,7 +240,7 @@ export default function Select({
|
|
|
240
240
|
{getLabel(selectedValues[0]) || '\u00A0'}
|
|
241
241
|
</span>
|
|
242
242
|
) : (
|
|
243
|
-
<span style={{ color: 'var(--t3,var(--grey-3))', fontWeight: 400 }}>{placeholder}</span>
|
|
243
|
+
<span style={{ color: 'var(--t3,var(--grey-3, #cbd5e1))', fontWeight: 400 }}>{placeholder}</span>
|
|
244
244
|
)}
|
|
245
245
|
</div>
|
|
246
246
|
{!multi && selectedValues.length > 0 && selectedValues[0] !== '' && selectedValues[0] !== null && (clearable || !!onClear) ? (
|
|
@@ -271,7 +271,7 @@ export default function Select({
|
|
|
271
271
|
size={12}
|
|
272
272
|
style={{
|
|
273
273
|
flexShrink: 0,
|
|
274
|
-
color: 'var(--t3,var(--grey-3))',
|
|
274
|
+
color: 'var(--t3,var(--grey-3, #cbd5e1))',
|
|
275
275
|
transition: 'transform .2s ease',
|
|
276
276
|
transform: open ? 'rotate(180deg)' : undefined,
|
|
277
277
|
}}
|
|
@@ -289,8 +289,8 @@ export default function Select({
|
|
|
289
289
|
left: pos.left,
|
|
290
290
|
width: pos.width,
|
|
291
291
|
boxSizing: 'border-box',
|
|
292
|
-
background: 'var(--sf,var(--surface))',
|
|
293
|
-
border: '1px solid var(--bd,var(--border))',
|
|
292
|
+
background: 'var(--sf,var(--surface, #ffffff))',
|
|
293
|
+
border: '1px solid var(--bd,var(--border, #e2e8f0))',
|
|
294
294
|
borderRadius: radiusVal,
|
|
295
295
|
boxShadow: 'var(--shadow,0 1px 3px rgba(20,22,41,.1))',
|
|
296
296
|
padding: 3,
|
|
@@ -312,13 +312,13 @@ export default function Select({
|
|
|
312
312
|
boxSizing: 'border-box',
|
|
313
313
|
padding: size === 'xs' ? '2px 5px' : size === 'sm' ? '3px 6px' : '7px 10px',
|
|
314
314
|
height: size === 'xs' ? 22 : size === 'sm' ? 26 : 32,
|
|
315
|
-
background: 'var(--sf2,var(--grey-1))',
|
|
316
|
-
border: '1.5px solid var(--bd2,var(--border))',
|
|
317
|
-
borderRadius: size === 'xs' ? '3px' : size === 'sm' ? '4px' : 'var(--rmd,var(--rads))',
|
|
318
|
-
fontFamily: 'var(--f,var(--sans))',
|
|
315
|
+
background: 'var(--sf2,var(--grey-1, #f5f5f8))',
|
|
316
|
+
border: '1.5px solid var(--bd2,var(--border, #e2e8f0))',
|
|
317
|
+
borderRadius: size === 'xs' ? '3px' : size === 'sm' ? '4px' : 'var(--rmd,var(--rads, 8px))',
|
|
318
|
+
fontFamily: 'var(--f,var(--sans, inherit))',
|
|
319
319
|
fontSize: size === 'xs' ? '10.5px' : size === 'sm' ? '11.5px' : '12.5px',
|
|
320
320
|
lineHeight: 1,
|
|
321
|
-
color: 'var(--t,var(--primary-text))',
|
|
321
|
+
color: 'var(--t,var(--primary-text, #0f172a))',
|
|
322
322
|
outline: 'none',
|
|
323
323
|
transition: 'border-color var(--tr,.15s), box-shadow var(--tr,.15s)',
|
|
324
324
|
}}
|
|
@@ -327,7 +327,7 @@ export default function Select({
|
|
|
327
327
|
)}
|
|
328
328
|
<div style={{ maxHeight: pos.maxHeight || 200, overflowY: 'auto' }}>
|
|
329
329
|
{filtered.length === 0 ? (
|
|
330
|
-
<div style={{ padding: '10px 8px', textAlign: 'center', color: 'var(--t3,var(--grey-3))', fontSize: 11 }}>
|
|
330
|
+
<div style={{ padding: '10px 8px', textAlign: 'center', color: 'var(--t3,var(--grey-3, #cbd5e1))', fontSize: 11 }}>
|
|
331
331
|
Ничего не найдено
|
|
332
332
|
</div>
|
|
333
333
|
) : (
|
|
@@ -341,10 +341,10 @@ export default function Select({
|
|
|
341
341
|
gap: 6,
|
|
342
342
|
minHeight: size === 'xs' ? 18 : size === 'sm' ? 22 : 28,
|
|
343
343
|
padding: size === 'xs' ? '3px 5px' : size === 'sm' ? '4.5px 7px' : '8px 10px',
|
|
344
|
-
borderRadius: size === 'xs' ? '3px' : size === 'sm' ? '4px' : 'var(--rmd,var(--rads))',
|
|
344
|
+
borderRadius: size === 'xs' ? '3px' : size === 'sm' ? '4px' : 'var(--rmd,var(--rads, 8px))',
|
|
345
345
|
cursor: opt.disabled ? 'not-allowed' : 'pointer',
|
|
346
|
-
color: isSelected(opt.value) ? 'var(--accent)' : 'var(--t,var(--primary-text))',
|
|
347
|
-
background: isSelected(opt.value) ? 'var(--pd,var(--accent-bg))' : undefined,
|
|
346
|
+
color: isSelected(opt.value) ? 'var(--accent, #f99e2c)' : 'var(--t,var(--primary-text, #0f172a))',
|
|
347
|
+
background: isSelected(opt.value) ? 'var(--pd,var(--accent-bg, rgba(249,158,44,.1)))' : undefined,
|
|
348
348
|
fontSize: size === 'xs' ? '10.5px' : size === 'sm' ? '11.5px' : '12.5px',
|
|
349
349
|
fontWeight: 400,
|
|
350
350
|
transition: 'background .1s',
|
|
@@ -357,12 +357,12 @@ export default function Select({
|
|
|
357
357
|
<span style={{
|
|
358
358
|
width: 13,
|
|
359
359
|
height: 13,
|
|
360
|
-
border: `1.5px solid ${isSelected(opt.value) ? 'var(--accent)' : 'var(--bd2,var(--border))'}`,
|
|
360
|
+
border: `1.5px solid ${isSelected(opt.value) ? 'var(--accent, #f99e2c)' : 'var(--bd2,var(--border, #e2e8f0))'}`,
|
|
361
361
|
borderRadius: 3,
|
|
362
362
|
flexShrink: 0,
|
|
363
363
|
position: 'relative',
|
|
364
364
|
transition: 'all .15s',
|
|
365
|
-
background: isSelected(opt.value) ? 'var(--accent)' : undefined,
|
|
365
|
+
background: isSelected(opt.value) ? 'var(--accent, #f99e2c)' : undefined,
|
|
366
366
|
}}>
|
|
367
367
|
{isSelected(opt.value) && (
|
|
368
368
|
<span style={{
|
|
@@ -382,7 +382,7 @@ export default function Select({
|
|
|
382
382
|
{opt.displayLabel || opt.label || '\u00A0'}
|
|
383
383
|
</span>
|
|
384
384
|
{!multi && isSelected(opt.value) && (
|
|
385
|
-
<Check size={12} style={{ flexShrink: 0, color: 'var(--accent)' }} />
|
|
385
|
+
<Check size={12} style={{ flexShrink: 0, color: 'var(--accent, #f99e2c)' }} />
|
|
386
386
|
)}
|
|
387
387
|
</div>
|
|
388
388
|
))
|
package/components/Spinner.jsx
CHANGED
|
@@ -27,13 +27,13 @@ export function SpinnerClassic({ size = 20, inline = false, color = 'currentColo
|
|
|
27
27
|
return (
|
|
28
28
|
<div style={{
|
|
29
29
|
position: 'fixed', inset: 0,
|
|
30
|
-
background: 'var(--bg)',
|
|
30
|
+
background: 'var(--bg, #f8fafc)',
|
|
31
31
|
display: 'flex', flexDirection: 'column',
|
|
32
32
|
alignItems: 'center', justifyContent: 'center', gap: 16,
|
|
33
33
|
zIndex: 9999,
|
|
34
34
|
}}>
|
|
35
35
|
{svg}
|
|
36
|
-
<div style={{ fontSize: '.75rem', fontFamily: 'var(--mono)', color: 'var(--muted)' }}>
|
|
36
|
+
<div style={{ fontSize: '.75rem', fontFamily: 'var(--mono, ui-monospace, monospace)', color: 'var(--muted, #797b8d)' }}>
|
|
37
37
|
Loading...
|
|
38
38
|
</div>
|
|
39
39
|
</div>
|
|
@@ -67,7 +67,7 @@ export function Spinner({ size = 20, inline = false, color = 'currentColor', ful
|
|
|
67
67
|
return (
|
|
68
68
|
<div style={{
|
|
69
69
|
position: 'fixed', inset: 0,
|
|
70
|
-
background: 'var(--bg)',
|
|
70
|
+
background: 'var(--bg, #f8fafc)',
|
|
71
71
|
display: 'flex', flexDirection: 'column',
|
|
72
72
|
alignItems: 'center', justifyContent: 'center', gap: 16,
|
|
73
73
|
zIndex: 9999,
|
|
@@ -75,7 +75,7 @@ export function Spinner({ size = 20, inline = false, color = 'currentColor', ful
|
|
|
75
75
|
<div className="v-progress-circular v-progress-circular--indeterminate" style={{ width: s, height: s }}>
|
|
76
76
|
{svg}
|
|
77
77
|
</div>
|
|
78
|
-
<div style={{ fontSize: '.75rem', fontFamily: 'var(--mono)', color: 'var(--muted)' }}>
|
|
78
|
+
<div style={{ fontSize: '.75rem', fontFamily: 'var(--mono, ui-monospace, monospace)', color: 'var(--muted, #797b8d)' }}>
|
|
79
79
|
Loading...
|
|
80
80
|
</div>
|
|
81
81
|
</div>
|
|
@@ -5,7 +5,7 @@ export default function StatBarCard({ title, icon, items, style }) {
|
|
|
5
5
|
|
|
6
6
|
return (
|
|
7
7
|
<div style={{
|
|
8
|
-
background: 'var(--surface,#fff)', border: '1px solid var(--border)', borderRadius: 'var(--rad)',
|
|
8
|
+
background: 'var(--surface,#fff)', border: '1px solid var(--border, #e2e8f0)', borderRadius: 'var(--rad, 10px)',
|
|
9
9
|
boxShadow: 'var(--shadow, 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04))',
|
|
10
10
|
padding: '12px 14px', minWidth: 220, ...style,
|
|
11
11
|
}}>
|
package/components/StatsBar.jsx
CHANGED
|
@@ -7,7 +7,7 @@ const itemStyle = {
|
|
|
7
7
|
padding: '4px 8px',
|
|
8
8
|
fontSize: '.8rem',
|
|
9
9
|
fontWeight: 600,
|
|
10
|
-
color: 'var(--t)',
|
|
10
|
+
color: 'var(--t, #0f172a)',
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
const iconWrap = (color) => ({
|
|
@@ -25,7 +25,7 @@ const iconWrap = (color) => ({
|
|
|
25
25
|
const sep = {
|
|
26
26
|
width: 1,
|
|
27
27
|
height: 14,
|
|
28
|
-
background: 'var(--border-light)',
|
|
28
|
+
background: 'var(--border-light, #ebebf0)',
|
|
29
29
|
margin: '0 3px',
|
|
30
30
|
flexShrink: 0,
|
|
31
31
|
};
|
|
@@ -37,8 +37,8 @@ const groupStyle = {
|
|
|
37
37
|
padding: '3px 8px',
|
|
38
38
|
minHeight: 32,
|
|
39
39
|
borderRadius: 7,
|
|
40
|
-
border: '1px solid var(--border)',
|
|
41
|
-
background: 'var(--surface)',
|
|
40
|
+
border: '1px solid var(--border, #e2e8f0)',
|
|
41
|
+
background: 'var(--surface, #ffffff)',
|
|
42
42
|
boxShadow: 'var(--shadow, 0 1px 2px rgba(0,0,0,.05))',
|
|
43
43
|
};
|
|
44
44
|
|
package/components/StatsCard.jsx
CHANGED
|
@@ -8,7 +8,7 @@ const BASE = {
|
|
|
8
8
|
minHeight: 68,
|
|
9
9
|
borderRadius: 'var(--rad,10px)',
|
|
10
10
|
background: 'var(--surface,#fff)',
|
|
11
|
-
border: '1px solid var(--border)',
|
|
11
|
+
border: '1px solid var(--border, #e2e8f0)',
|
|
12
12
|
boxShadow: 'var(--shadow, 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04))',
|
|
13
13
|
minWidth: 0,
|
|
14
14
|
transition: 'border-color .15s',
|
|
@@ -25,7 +25,7 @@ const SIMPLE_BASE = {
|
|
|
25
25
|
export default function StatsCard({
|
|
26
26
|
variant = 'default',
|
|
27
27
|
icon,
|
|
28
|
-
iconColor = 'var(--blue)',
|
|
28
|
+
iconColor = 'var(--blue, #2782e4)',
|
|
29
29
|
iconBg = 'var(--infd, rgba(39,130,228,.1))',
|
|
30
30
|
title,
|
|
31
31
|
value,
|
package/components/TabBar.jsx
CHANGED
|
@@ -180,8 +180,8 @@ export default function TabBar({ tabs, active, onChange, capitalize = false, pad
|
|
|
180
180
|
{hasItems && <ChevronIcon isOpen={isOpen} />}
|
|
181
181
|
{t.count != null && t.count > 0 && (
|
|
182
182
|
<span style={{
|
|
183
|
-
background: isActive ? 'var(--accent-bg)' : 'var(--grey-2, #d7d8e0)',
|
|
184
|
-
color: isActive ? 'var(--accent)' : 'var(--muted)',
|
|
183
|
+
background: isActive ? 'var(--accent-bg, rgba(249,158,44,.1))' : 'var(--grey-2, #d7d8e0)',
|
|
184
|
+
color: isActive ? 'var(--accent, #f99e2c)' : 'var(--muted, #797b8d)',
|
|
185
185
|
borderRadius: 10,
|
|
186
186
|
padding: '1px 6px',
|
|
187
187
|
fontSize: '.68rem',
|
|
@@ -261,7 +261,7 @@ export default function TabBar({ tabs, active, onChange, capitalize = false, pad
|
|
|
261
261
|
<div ref={indRef} style={{
|
|
262
262
|
position:'absolute', bottom:'-1px', left:0,
|
|
263
263
|
height:2, width:0,
|
|
264
|
-
background:'var(--accent)',
|
|
264
|
+
background:'var(--accent, #f99e2c)',
|
|
265
265
|
borderRadius:'2px 2px 0 0',
|
|
266
266
|
transition:'transform .22s cubic-bezier(.4,0,.2,1), width .22s cubic-bezier(.4,0,.2,1)',
|
|
267
267
|
pointerEvents:'none', zIndex:2,
|
|
@@ -296,7 +296,7 @@ export default function TabBar({ tabs, active, onChange, capitalize = false, pad
|
|
|
296
296
|
padding: defaultPadding,
|
|
297
297
|
border:'none', background:'none',
|
|
298
298
|
fontSize:'.82rem', fontWeight:500,
|
|
299
|
-
color: isActive ? 'var(--accent)' : 'var(--muted)',
|
|
299
|
+
color: isActive ? 'var(--accent, #f99e2c)' : 'var(--muted, #797b8d)',
|
|
300
300
|
cursor: t.disabled ? 'not-allowed' : 'pointer',
|
|
301
301
|
opacity: t.disabled ? 0.38 : 1,
|
|
302
302
|
transition:'color .18s',
|
|
@@ -323,8 +323,8 @@ export default function TabBar({ tabs, active, onChange, capitalize = false, pad
|
|
|
323
323
|
{hasItems && <ChevronIcon isOpen={isOpen} />}
|
|
324
324
|
{t.count != null && t.count > 0 && (
|
|
325
325
|
<span style={{
|
|
326
|
-
background: isActive ? 'var(--accent-bg)' : 'var(--grey-1)',
|
|
327
|
-
color: isActive ? 'var(--accent)' : 'var(--muted)',
|
|
326
|
+
background: isActive ? 'var(--accent-bg, rgba(249,158,44,.1))' : 'var(--grey-1, #f5f5f8)',
|
|
327
|
+
color: isActive ? 'var(--accent, #f99e2c)' : 'var(--muted, #797b8d)',
|
|
328
328
|
borderRadius: 10,
|
|
329
329
|
padding: '1px 6px',
|
|
330
330
|
fontSize: '.68rem',
|