shared-design-system 1.11.0 → 1.13.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.
- package/dist/src/components/Alert.d.ts +2 -1
- package/dist/src/components/Alert.js +80 -38
- package/dist/src/components/Alert.js.map +1 -1
- package/dist/src/components/Avatar.d.ts +11 -1
- package/dist/src/components/Avatar.js +96 -31
- package/dist/src/components/Avatar.js.map +1 -1
- package/dist/src/components/Badge.d.ts +5 -2
- package/dist/src/components/Badge.js +94 -30
- package/dist/src/components/Badge.js.map +1 -1
- package/dist/src/components/Breadcrumbs.d.ts +4 -1
- package/dist/src/components/Breadcrumbs.js +56 -27
- package/dist/src/components/Breadcrumbs.js.map +1 -1
- package/dist/src/components/Button.d.ts +4 -2
- package/dist/src/components/Button.js +99 -95
- package/dist/src/components/Button.js.map +1 -1
- package/dist/src/components/Card.d.ts +6 -1
- package/dist/src/components/Card.js +109 -21
- package/dist/src/components/Card.js.map +1 -1
- package/dist/src/components/ConfirmModal.d.ts +5 -2
- package/dist/src/components/ConfirmModal.js +99 -47
- package/dist/src/components/ConfirmModal.js.map +1 -1
- package/dist/src/components/DatePicker.js +55 -8
- package/dist/src/components/DatePicker.js.map +1 -1
- package/dist/src/components/Divider.d.ts +5 -1
- package/dist/src/components/Divider.js +53 -18
- package/dist/src/components/Divider.js.map +1 -1
- package/dist/src/components/InputComponents.d.ts +2 -4
- package/dist/src/components/InputComponents.js +89 -132
- package/dist/src/components/InputComponents.js.map +1 -1
- package/dist/src/components/ListComponents.d.ts +7 -4
- package/dist/src/components/ListComponents.js +70 -35
- package/dist/src/components/ListComponents.js.map +1 -1
- package/dist/src/components/LoadingSpinner.d.ts +9 -2
- package/dist/src/components/LoadingSpinner.js +59 -17
- package/dist/src/components/LoadingSpinner.js.map +1 -1
- package/dist/src/components/MultiSelect.d.ts +14 -0
- package/dist/src/components/MultiSelect.js +142 -0
- package/dist/src/components/MultiSelect.js.map +1 -0
- package/dist/src/components/Progress.d.ts +5 -1
- package/dist/src/components/Progress.js +58 -26
- package/dist/src/components/Progress.js.map +1 -1
- package/dist/src/components/Radio.d.ts +4 -0
- package/dist/src/components/Radio.js +50 -24
- package/dist/src/components/Radio.js.map +1 -1
- package/dist/src/components/ReadOnlyField.d.ts +6 -1
- package/dist/src/components/ReadOnlyField.js +78 -18
- package/dist/src/components/ReadOnlyField.js.map +1 -1
- package/dist/src/components/Select.d.ts +19 -0
- package/dist/src/components/Select.js +110 -0
- package/dist/src/components/Select.js.map +1 -0
- package/dist/src/components/Skeleton.d.ts +3 -1
- package/dist/src/components/Skeleton.js +52 -22
- package/dist/src/components/Skeleton.js.map +1 -1
- package/dist/src/components/Stack.d.ts +4 -0
- package/dist/src/components/Stack.js +32 -18
- package/dist/src/components/Stack.js.map +1 -1
- package/dist/src/components/Steps.d.ts +3 -1
- package/dist/src/components/Steps.js +93 -68
- package/dist/src/components/Steps.js.map +1 -1
- package/dist/src/components/Switch.d.ts +6 -2
- package/dist/src/components/Switch.js +45 -22
- package/dist/src/components/Switch.js.map +1 -1
- package/dist/src/components/Table.d.ts +9 -1
- package/dist/src/components/Table.js +102 -37
- package/dist/src/components/Table.js.map +1 -1
- package/dist/src/components/Tabs.d.ts +9 -5
- package/dist/src/components/Tabs.js +88 -88
- package/dist/src/components/Tabs.js.map +1 -1
- package/dist/src/components/Tag.d.ts +5 -2
- package/dist/src/components/Tag.js +106 -28
- package/dist/src/components/Tag.js.map +1 -1
- package/dist/src/components/Tooltip.d.ts +3 -0
- package/dist/src/components/Tooltip.js +89 -38
- package/dist/src/components/Tooltip.js.map +1 -1
- package/dist/src/components/Typography.d.ts +15 -2
- package/dist/src/components/Typography.js +108 -53
- package/dist/src/components/Typography.js.map +1 -1
- package/dist/src/index.d.ts +12 -8
- package/dist/src/index.js +6 -4
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,84 +1,109 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React from 'react';
|
|
3
2
|
import { tokens } from '../tokens';
|
|
4
|
-
export const Steps = ({ current = 0, items = [], direction = 'horizontal', className = '', style = {}, }) => {
|
|
5
|
-
const containerStyle = {
|
|
6
|
-
display: 'flex',
|
|
7
|
-
flexDirection: direction === 'vertical' ? 'column' : 'row',
|
|
8
|
-
gap: tokens.spacing['4'],
|
|
9
|
-
width: '100%',
|
|
10
|
-
...style,
|
|
11
|
-
};
|
|
12
|
-
return (_jsx("div", { style: containerStyle, className: className, children: items.map((item, index) => {
|
|
13
|
-
const status = index < current ? 'finish' : index === current ? 'process' : 'wait';
|
|
14
|
-
return (_jsx(React.Fragment, { children: _jsx(StepItemComponent, { index: index, status: status, title: item.title, description: item.description, direction: direction, isLast: index === items.length - 1 }) }, index));
|
|
15
|
-
}) }));
|
|
16
|
-
};
|
|
17
3
|
const getColors = (status) => {
|
|
18
4
|
switch (status) {
|
|
19
5
|
case 'finish':
|
|
20
|
-
return { main: tokens.color.primary, bg: tokens.color.primaryLight, text: tokens.color.primary };
|
|
6
|
+
return { main: tokens.color.primary, bg: tokens.color.primaryLight, text: tokens.color.primary, line: tokens.color.primary };
|
|
21
7
|
case 'process':
|
|
22
|
-
return { main: tokens.color.primary, bg: tokens.color.primary, text: '#ffffff' };
|
|
8
|
+
return { main: tokens.color.primary, bg: tokens.color.primary, text: '#ffffff', line: tokens.color.slate200 };
|
|
9
|
+
case 'error':
|
|
10
|
+
return { main: tokens.color.danger, bg: tokens.color.dangerBg, text: tokens.color.danger, line: tokens.color.slate200 };
|
|
23
11
|
case 'wait':
|
|
24
12
|
default:
|
|
25
|
-
return { main: tokens.color.
|
|
13
|
+
return { main: tokens.color.slate300, bg: tokens.color.slate50, text: tokens.color.slate400, line: tokens.color.slate200 };
|
|
26
14
|
}
|
|
27
15
|
};
|
|
28
|
-
const
|
|
16
|
+
const ICON_SIZE = { sm: '28px', md: '36px', lg: '44px' };
|
|
17
|
+
const FONT_SIZE = { sm: tokens.font.xs, md: tokens.font.sm, lg: tokens.font.base };
|
|
18
|
+
export const Steps = ({ current = 0, items = [], direction = 'horizontal', size = 'md', className = '', style = {}, }) => {
|
|
19
|
+
const isVertical = direction === 'vertical';
|
|
20
|
+
return (_jsx("div", { style: {
|
|
21
|
+
display: 'flex',
|
|
22
|
+
flexDirection: isVertical ? 'column' : 'row',
|
|
23
|
+
gap: 0,
|
|
24
|
+
width: '100%',
|
|
25
|
+
...style,
|
|
26
|
+
}, className: `ds-steps ds-steps--${direction} ${className}`, children: items.map((item, index) => {
|
|
27
|
+
const status = index < current ? 'finish' : index === current ? 'process' : 'wait';
|
|
28
|
+
return (_jsx(StepItemComponent, { index: index, status: status, title: item.title, description: item.description, icon: item.icon, direction: direction, isLast: index === items.length - 1, size: size }, index));
|
|
29
|
+
}) }));
|
|
30
|
+
};
|
|
31
|
+
const StepItemComponent = ({ index, status, title, description, icon, direction, isLast, size, }) => {
|
|
29
32
|
const isHorizontal = direction === 'horizontal';
|
|
30
33
|
const c = getColors(status);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
34
|
+
const iconSize = ICON_SIZE[size] || ICON_SIZE.md;
|
|
35
|
+
const iconSizePx = parseInt(iconSize);
|
|
36
|
+
const fontSize = FONT_SIZE[size] || tokens.font.sm;
|
|
37
|
+
const CheckIcon = () => (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }));
|
|
38
|
+
const ErrorIcon = () => (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, strokeLinecap: "round", children: _jsx("path", { d: "M18 6L6 18M6 6l12 12" }) }));
|
|
39
|
+
return (_jsxs("div", { style: {
|
|
40
|
+
display: 'flex',
|
|
41
|
+
flexDirection: isHorizontal ? 'column' : 'row',
|
|
42
|
+
flex: isHorizontal ? (isLast ? 'none' : 1) : 'none',
|
|
43
|
+
alignItems: isHorizontal ? 'center' : 'flex-start',
|
|
44
|
+
position: 'relative',
|
|
45
|
+
}, children: [!isLast && (_jsx("div", { style: {
|
|
46
|
+
position: 'absolute',
|
|
47
|
+
backgroundColor: 'transparent',
|
|
48
|
+
zIndex: 1,
|
|
49
|
+
...(isHorizontal
|
|
50
|
+
? {
|
|
51
|
+
height: '2px',
|
|
52
|
+
top: `${iconSizePx / 2}px`,
|
|
53
|
+
left: `calc(50% + ${iconSizePx / 2 + 4}px)`,
|
|
54
|
+
right: `calc(-50% + ${iconSizePx / 2 + 4}px)`,
|
|
55
|
+
background: status === 'finish'
|
|
56
|
+
? `linear-gradient(to right, ${tokens.color.primary}, ${tokens.color.primaryLight})`
|
|
57
|
+
: tokens.color.slate200,
|
|
58
|
+
}
|
|
59
|
+
: {
|
|
60
|
+
width: '2px',
|
|
61
|
+
left: `${iconSizePx / 2 - 1}px`,
|
|
62
|
+
top: `${iconSizePx + 6}px`,
|
|
63
|
+
height: '32px',
|
|
64
|
+
background: status === 'finish'
|
|
65
|
+
? `linear-gradient(to bottom, ${tokens.color.primary}, ${tokens.color.primaryLight})`
|
|
66
|
+
: tokens.color.slate200,
|
|
67
|
+
}),
|
|
68
|
+
} })), _jsx("div", { style: {
|
|
69
|
+
width: iconSize,
|
|
70
|
+
height: iconSize,
|
|
71
|
+
borderRadius: '50%',
|
|
72
|
+
display: 'flex',
|
|
73
|
+
alignItems: 'center',
|
|
74
|
+
justifyContent: 'center',
|
|
75
|
+
border: `2px solid ${c.main}`,
|
|
76
|
+
backgroundColor: c.bg,
|
|
77
|
+
color: c.text,
|
|
78
|
+
fontSize,
|
|
79
|
+
fontWeight: tokens.font.weightBold,
|
|
80
|
+
zIndex: 2,
|
|
81
|
+
flexShrink: 0,
|
|
82
|
+
transition: tokens.transition.normal,
|
|
83
|
+
boxShadow: status === 'process'
|
|
84
|
+
? `0 0 0 4px ${tokens.color.primaryLight}`
|
|
85
|
+
: 'none',
|
|
86
|
+
marginBottom: isHorizontal ? tokens.spacing['2'] : 0,
|
|
87
|
+
marginRight: !isHorizontal ? tokens.spacing['3'] : 0,
|
|
88
|
+
}, children: icon ? icon : status === 'finish' ? _jsx(CheckIcon, {}) : status === 'error' ? _jsx(ErrorIcon, {}) : index + 1 }), _jsxs("div", { style: {
|
|
75
89
|
textAlign: isHorizontal ? 'center' : 'left',
|
|
76
|
-
|
|
77
|
-
|
|
90
|
+
paddingTop: !isHorizontal ? '6px' : 0,
|
|
91
|
+
paddingBottom: !isHorizontal && !isLast ? tokens.spacing['8'] : 0,
|
|
78
92
|
}, children: [_jsx("div", { style: {
|
|
79
|
-
fontSize
|
|
80
|
-
fontWeight: status === 'process' ? tokens.font.weightBold : tokens.font.
|
|
81
|
-
color: status === 'wait' ? tokens.color.
|
|
82
|
-
|
|
93
|
+
fontSize,
|
|
94
|
+
fontWeight: status === 'process' ? tokens.font.weightBold : tokens.font.weightSemibold,
|
|
95
|
+
color: status === 'wait' ? tokens.color.textDisabled :
|
|
96
|
+
status === 'error' ? tokens.color.danger :
|
|
97
|
+
status === 'process' ? tokens.color.primary :
|
|
98
|
+
tokens.color.text,
|
|
99
|
+
lineHeight: 1.35,
|
|
100
|
+
transition: tokens.transition.fast,
|
|
101
|
+
}, children: title }), description && (_jsx("div", { style: {
|
|
102
|
+
fontSize: tokens.font.xs,
|
|
103
|
+
color: tokens.color.textMuted,
|
|
104
|
+
marginTop: '3px',
|
|
105
|
+
fontWeight: tokens.font.weightMedium,
|
|
106
|
+
lineHeight: 1.4,
|
|
107
|
+
}, children: description }))] })] }));
|
|
83
108
|
};
|
|
84
109
|
//# sourceMappingURL=Steps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Steps.js","sourceRoot":"","sources":["../../../src/components/Steps.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Steps.js","sourceRoot":"","sources":["../../../src/components/Steps.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export interface SwitchProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
3
|
-
label?:
|
|
2
|
+
export interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
|
|
3
|
+
label?: React.ReactNode;
|
|
4
|
+
labelPlacement?: 'start' | 'end';
|
|
5
|
+
size?: 'sm' | 'md' | 'lg';
|
|
6
|
+
color?: 'primary' | 'success' | 'warning' | 'danger';
|
|
7
|
+
description?: string;
|
|
4
8
|
}
|
|
5
9
|
export declare const Switch: React.FC<SwitchProps>;
|
|
@@ -1,39 +1,62 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { tokens } from '../tokens';
|
|
3
|
-
|
|
3
|
+
const SIZE_CONFIG = {
|
|
4
|
+
sm: { trackW: '34px', trackH: '18px', thumbSize: '14px', thumbOn: '18px', thumbOff: '2px' },
|
|
5
|
+
md: { trackW: '44px', trackH: '24px', thumbSize: '20px', thumbOn: '22px', thumbOff: '2px' },
|
|
6
|
+
lg: { trackW: '54px', trackH: '30px', thumbSize: '26px', thumbOn: '26px', thumbOff: '2px' },
|
|
7
|
+
};
|
|
8
|
+
const COLOR_MAP = {
|
|
9
|
+
primary: tokens.color.primary,
|
|
10
|
+
success: tokens.color.success,
|
|
11
|
+
warning: tokens.color.warning,
|
|
12
|
+
danger: tokens.color.danger,
|
|
13
|
+
};
|
|
14
|
+
export const Switch = ({ checked, onChange, disabled = false, label, labelPlacement = 'end', size = 'md', color = 'primary', description, className = '', style = {}, ...props }) => {
|
|
15
|
+
const sc = SIZE_CONFIG[size] || SIZE_CONFIG.md;
|
|
16
|
+
const activeColor = COLOR_MAP[color] || tokens.color.primary;
|
|
4
17
|
const containerStyle = {
|
|
5
18
|
display: 'inline-flex',
|
|
6
|
-
alignItems: 'center',
|
|
19
|
+
alignItems: description ? 'flex-start' : 'center',
|
|
20
|
+
flexDirection: labelPlacement === 'start' ? 'row-reverse' : 'row',
|
|
7
21
|
gap: tokens.spacing[3],
|
|
8
22
|
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
9
|
-
opacity: disabled ? 0.
|
|
10
|
-
|
|
23
|
+
opacity: disabled ? 0.55 : 1,
|
|
24
|
+
userSelect: 'none',
|
|
25
|
+
...style,
|
|
11
26
|
};
|
|
12
27
|
const trackStyle = {
|
|
13
28
|
position: 'relative',
|
|
14
|
-
width:
|
|
15
|
-
height:
|
|
16
|
-
backgroundColor: checked ?
|
|
29
|
+
width: sc.trackW,
|
|
30
|
+
height: sc.trackH,
|
|
31
|
+
backgroundColor: checked ? activeColor : tokens.color.slate200,
|
|
17
32
|
borderRadius: tokens.radius.full,
|
|
18
|
-
transition:
|
|
19
|
-
flexShrink: 0
|
|
33
|
+
transition: 'background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1)',
|
|
34
|
+
flexShrink: 0,
|
|
35
|
+
boxShadow: checked
|
|
36
|
+
? `0 0 0 3px ${activeColor}20`
|
|
37
|
+
: 'inset 0 1px 2px rgba(0,0,0,0.1)',
|
|
20
38
|
};
|
|
21
39
|
const thumbStyle = {
|
|
22
40
|
position: 'absolute',
|
|
23
|
-
top:
|
|
24
|
-
left: checked ?
|
|
25
|
-
width:
|
|
26
|
-
height:
|
|
27
|
-
backgroundColor: '
|
|
41
|
+
top: `calc(50% - ${sc.thumbSize} / 2)`,
|
|
42
|
+
left: checked ? sc.thumbOn : sc.thumbOff,
|
|
43
|
+
width: sc.thumbSize,
|
|
44
|
+
height: sc.thumbSize,
|
|
45
|
+
backgroundColor: '#ffffff',
|
|
28
46
|
borderRadius: '50%',
|
|
29
|
-
transition:
|
|
30
|
-
boxShadow: '0 1px
|
|
47
|
+
transition: 'left 0.2s cubic-bezier(0.34, 1.56, 0.64, 1)',
|
|
48
|
+
boxShadow: '0 1px 4px rgba(0,0,0,0.25), 0 0 0 0.5px rgba(0,0,0,0.06)',
|
|
31
49
|
};
|
|
32
|
-
return (_jsxs("label", { style: containerStyle, className: className
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
},
|
|
50
|
+
return (_jsxs("label", { style: containerStyle, className: `ds-switch ${className}`, children: [_jsxs("div", { style: { position: 'relative', flexShrink: 0 }, children: [_jsx("input", { type: "checkbox", checked: checked, onChange: onChange, disabled: disabled, style: { position: 'absolute', opacity: 0, width: 0, height: 0 }, ...props }), _jsx("div", { style: trackStyle, children: _jsx("div", { style: thumbStyle }) })] }), (label || description) && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '2px' }, children: [label && (_jsx("span", { style: {
|
|
51
|
+
fontSize: tokens.font.sm,
|
|
52
|
+
fontWeight: tokens.font.weightSemibold,
|
|
53
|
+
color: disabled ? tokens.color.textDisabled : tokens.color.text,
|
|
54
|
+
lineHeight: 1.4,
|
|
55
|
+
}, children: label })), description && (_jsx("span", { style: {
|
|
56
|
+
fontSize: '11px',
|
|
57
|
+
fontWeight: tokens.font.weightMedium,
|
|
58
|
+
color: tokens.color.textMuted,
|
|
59
|
+
lineHeight: 1.4,
|
|
60
|
+
}, children: description }))] }))] }));
|
|
38
61
|
};
|
|
39
62
|
//# sourceMappingURL=Switch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.js","sourceRoot":"","sources":["../../../src/components/Switch.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Switch.js","sourceRoot":"","sources":["../../../src/components/Switch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ export interface TableColumn<T = any> {
|
|
|
3
3
|
key: string | number;
|
|
4
4
|
label: React.ReactNode;
|
|
5
5
|
width?: string | number;
|
|
6
|
+
minWidth?: string;
|
|
6
7
|
align?: 'left' | 'center' | 'right';
|
|
8
|
+
sortable?: boolean;
|
|
7
9
|
render?: (value: any, record: T, index: number) => React.ReactNode;
|
|
8
10
|
headerStyle?: React.CSSProperties;
|
|
9
11
|
cellStyle?: React.CSSProperties;
|
|
@@ -17,10 +19,16 @@ export interface TableProps<T = any> {
|
|
|
17
19
|
headerStyle?: React.CSSProperties;
|
|
18
20
|
rowStyle?: React.CSSProperties | ((record: T, index: number) => React.CSSProperties);
|
|
19
21
|
emptyText?: React.ReactNode;
|
|
22
|
+
striped?: boolean;
|
|
23
|
+
bordered?: boolean;
|
|
24
|
+
loading?: boolean;
|
|
25
|
+
rowKey?: string | ((record: T) => string | number);
|
|
26
|
+
activeKey?: string | number;
|
|
20
27
|
}
|
|
21
|
-
export declare const Table: <T extends Record<string, any>>({ columns, data, onRowClick, className, style, headerStyle, rowStyle, emptyText, }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare const Table: <T extends Record<string, any>>({ columns, data, onRowClick, className, style, headerStyle, rowStyle, emptyText, striped, bordered, loading, rowKey, activeKey, }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
22
29
|
export interface TableContainerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
23
30
|
children: React.ReactNode;
|
|
31
|
+
bordered?: boolean;
|
|
24
32
|
}
|
|
25
33
|
export declare const TableContainer: React.FC<TableContainerProps>;
|
|
26
34
|
export interface THeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {
|
|
@@ -1,32 +1,103 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { tokens } from '../tokens';
|
|
3
|
-
export const Table = ({ columns, data, onRowClick, className = '', style = {}, headerStyle = {}, rowStyle = {}, emptyText = 'Không tìm thấy dữ liệu
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
4
|
+
export const Table = ({ columns, data, onRowClick, className = '', style = {}, headerStyle = {}, rowStyle = {}, emptyText = 'Không tìm thấy dữ liệu', striped = true, bordered = false, loading = false, rowKey, activeKey, }) => {
|
|
5
|
+
const [sortKey, setSortKey] = useState(null);
|
|
6
|
+
const [sortDir, setSortDir] = useState('asc');
|
|
7
|
+
const [hoveredRow, setHoveredRow] = useState(null);
|
|
8
|
+
const getRowKey = (record, index) => {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
if (rowKey) {
|
|
11
|
+
return typeof rowKey === 'function' ? rowKey(record) : record[rowKey];
|
|
12
|
+
}
|
|
13
|
+
return (_b = (_a = record.id) !== null && _a !== void 0 ? _a : record.key) !== null && _b !== void 0 ? _b : index;
|
|
14
|
+
};
|
|
15
|
+
// Optional client-side sort
|
|
16
|
+
const handleSort = (col) => {
|
|
17
|
+
if (!col.sortable)
|
|
18
|
+
return;
|
|
19
|
+
if (sortKey === col.key) {
|
|
20
|
+
setSortDir((d) => (d === 'asc' ? 'desc' : 'asc'));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
setSortKey(col.key);
|
|
24
|
+
setSortDir('asc');
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
let displayData = [...data];
|
|
28
|
+
if (sortKey !== null) {
|
|
29
|
+
displayData.sort((a, b) => {
|
|
30
|
+
const av = a[sortKey];
|
|
31
|
+
const bv = b[sortKey];
|
|
32
|
+
if (av == null)
|
|
33
|
+
return 1;
|
|
34
|
+
if (bv == null)
|
|
35
|
+
return -1;
|
|
36
|
+
const cmp = String(av).localeCompare(String(bv), 'vi', { numeric: true });
|
|
37
|
+
return sortDir === 'asc' ? cmp : -cmp;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return (_jsxs(TableContainer, { className: className, style: style, bordered: bordered, children: [loading && (_jsxs("div", { style: {
|
|
41
|
+
position: 'absolute',
|
|
42
|
+
inset: 0,
|
|
43
|
+
display: 'flex',
|
|
44
|
+
alignItems: 'center',
|
|
45
|
+
justifyContent: 'center',
|
|
46
|
+
backgroundColor: 'rgba(255,255,255,0.7)',
|
|
47
|
+
backdropFilter: 'blur(2px)',
|
|
48
|
+
zIndex: 10,
|
|
49
|
+
borderRadius: 'inherit',
|
|
50
|
+
}, children: [_jsx("div", { style: {
|
|
51
|
+
width: '28px',
|
|
52
|
+
height: '28px',
|
|
53
|
+
border: `3px solid ${tokens.color.slate200}`,
|
|
54
|
+
borderTopColor: tokens.color.primary,
|
|
55
|
+
borderRadius: '50%',
|
|
56
|
+
animation: 'ds-spin 0.7s linear infinite',
|
|
57
|
+
} }), _jsx("style", { children: `@keyframes ds-spin { to { transform: rotate(360deg); } }` })] })), _jsx(THead, { children: _jsx(TR, { header: true, children: columns.map((col) => {
|
|
58
|
+
const isSorted = sortKey === col.key;
|
|
59
|
+
return (_jsx(TH, { onClick: col.sortable ? () => handleSort(col) : undefined, style: {
|
|
60
|
+
textAlign: col.align || 'left',
|
|
61
|
+
width: col.width,
|
|
62
|
+
minWidth: col.minWidth,
|
|
63
|
+
cursor: col.sortable ? 'pointer' : 'default',
|
|
64
|
+
userSelect: col.sortable ? 'none' : undefined,
|
|
65
|
+
...col.headerStyle,
|
|
66
|
+
...headerStyle,
|
|
67
|
+
}, children: _jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: '5px' }, children: [col.label, col.sortable && (_jsxs("span", { style: { display: 'inline-flex', flexDirection: 'column', gap: '1px', opacity: isSorted ? 1 : 0.3 }, children: [_jsx("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: isSorted && sortDir === 'asc' ? tokens.color.primary : tokens.color.slate400, children: _jsx("path", { d: "M4 0L8 5H0L4 0Z" }) }), _jsx("svg", { width: "8", height: "5", viewBox: "0 0 8 5", fill: isSorted && sortDir === 'desc' ? tokens.color.primary : tokens.color.slate400, children: _jsx("path", { d: "M4 5L0 0H8L4 5Z" }) })] }))] }) }, col.key.toString()));
|
|
68
|
+
}) }) }), _jsx(TBody, { children: displayData.length > 0 ? (displayData.map((record, rowIndex) => {
|
|
69
|
+
const key = getRowKey(record, rowIndex);
|
|
70
|
+
const isActive = activeKey !== undefined && getRowKey(record, rowIndex) === activeKey;
|
|
71
|
+
const isHovered = hoveredRow === rowIndex;
|
|
72
|
+
const computedRowStyle = typeof rowStyle === 'function' ? rowStyle(record, rowIndex) : rowStyle;
|
|
73
|
+
const zebraStyle = striped && rowIndex % 2 === 1
|
|
74
|
+
? { backgroundColor: 'rgba(248, 250, 252, 0.6)' }
|
|
75
|
+
: {};
|
|
76
|
+
return (_jsx(TR, { onClick: onRowClick ? () => onRowClick(record, rowIndex) : undefined, active: isActive, style: {
|
|
77
|
+
...zebraStyle,
|
|
78
|
+
...(isHovered && !isActive ? { backgroundColor: tokens.color.primaryLight } : {}),
|
|
79
|
+
...computedRowStyle,
|
|
80
|
+
}, onMouseEnter: () => onRowClick && setHoveredRow(rowIndex), onMouseLeave: () => onRowClick && setHoveredRow(null), children: columns.map((col) => (_jsx(TD, { style: { textAlign: col.align || 'left', ...col.cellStyle }, children: col.render
|
|
81
|
+
? col.render(record[col.key], record, rowIndex)
|
|
82
|
+
: record[col.key] }, col.key.toString()))) }, String(key)));
|
|
83
|
+
})) : (_jsx(TR, { children: _jsx(TD, { colSpan: columns.length, style: { textAlign: 'center', padding: tokens.spacing[12], color: tokens.color.slate400 }, children: _jsxs("div", { style: {
|
|
84
|
+
display: 'flex',
|
|
85
|
+
flexDirection: 'column',
|
|
86
|
+
alignItems: 'center',
|
|
87
|
+
gap: tokens.spacing[3],
|
|
88
|
+
}, children: [_jsxs("svg", { width: "40", height: "40", viewBox: "0 0 24 24", fill: "none", stroke: tokens.color.slate300, strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2" }), _jsx("line", { x1: "8", y1: "21", x2: "16", y2: "21" }), _jsx("line", { x1: "12", y1: "17", x2: "12", y2: "21" })] }), _jsx("span", { style: { fontSize: tokens.font.sm, fontStyle: 'italic', fontWeight: tokens.font.weightMedium }, children: emptyText })] }) }) })) })] }));
|
|
20
89
|
};
|
|
21
|
-
export const TableContainer = ({ children, className = '', style = {}, ...props }) => (_jsx("div", { ...props, style: {
|
|
90
|
+
export const TableContainer = ({ children, className = '', style = {}, bordered = false, ...props }) => (_jsx("div", { ...props, style: {
|
|
22
91
|
width: '100%',
|
|
23
92
|
overflowX: 'auto',
|
|
93
|
+
overflowY: 'hidden',
|
|
24
94
|
backgroundColor: tokens.color.white,
|
|
25
95
|
borderRadius: tokens.radius['2xl'],
|
|
26
|
-
border: `1px solid ${tokens.color.slate100}`,
|
|
96
|
+
border: `1px solid ${bordered ? tokens.color.slate200 : tokens.color.slate100}`,
|
|
27
97
|
boxShadow: tokens.shadow.sm,
|
|
98
|
+
position: 'relative',
|
|
28
99
|
...style,
|
|
29
|
-
}, className: className
|
|
100
|
+
}, className: `ds-table-container ${className}`, children: _jsx("table", { style: {
|
|
30
101
|
width: '100%',
|
|
31
102
|
borderCollapse: 'collapse',
|
|
32
103
|
textAlign: 'left',
|
|
@@ -34,41 +105,35 @@ export const TableContainer = ({ children, className = '', style = {}, ...props
|
|
|
34
105
|
fontFamily: tokens.font.family,
|
|
35
106
|
}, children: children }) }));
|
|
36
107
|
export const THead = ({ children, style = {}, ...props }) => (_jsx("thead", { ...props, style: {
|
|
37
|
-
backgroundColor:
|
|
108
|
+
backgroundColor: tokens.color.slate50,
|
|
109
|
+
borderBottom: `2px solid ${tokens.color.slate100}`,
|
|
38
110
|
...style,
|
|
39
111
|
}, children: children }));
|
|
40
112
|
export const TBody = ({ children, style = {}, ...props }) => (_jsx("tbody", { ...props, style: { backgroundColor: tokens.color.white, ...style }, children: children }));
|
|
41
113
|
export const TR = ({ children, onClick, active = false, header = false, style = {}, ...props }) => (_jsx("tr", { ...props, onClick: onClick, style: {
|
|
42
|
-
borderBottom: `1px solid ${tokens.color.
|
|
114
|
+
borderBottom: `1px solid ${tokens.color.slate100}`,
|
|
43
115
|
backgroundColor: active ? tokens.color.primaryLight : 'transparent',
|
|
44
116
|
transition: tokens.transition.fast,
|
|
45
117
|
cursor: onClick ? 'pointer' : 'default',
|
|
46
118
|
...style,
|
|
47
|
-
},
|
|
48
|
-
? (e) => {
|
|
49
|
-
e.currentTarget.style.backgroundColor = 'rgba(248, 250, 252, 0.3)';
|
|
50
|
-
}
|
|
51
|
-
: undefined, onMouseLeave: !header
|
|
52
|
-
? (e) => {
|
|
53
|
-
e.currentTarget.style.backgroundColor = active
|
|
54
|
-
? tokens.color.primaryLight
|
|
55
|
-
: 'transparent';
|
|
56
|
-
}
|
|
57
|
-
: undefined, children: children }));
|
|
119
|
+
}, children: children }));
|
|
58
120
|
export const TH = ({ children, style = {}, ...props }) => (_jsx("th", { ...props, style: {
|
|
59
|
-
padding: `${tokens.spacing[
|
|
121
|
+
padding: `${tokens.spacing[3]} ${tokens.spacing[5]}`,
|
|
60
122
|
fontWeight: tokens.font.weightBold,
|
|
61
|
-
color: tokens.color.
|
|
123
|
+
color: tokens.color.slate500,
|
|
62
124
|
textTransform: 'uppercase',
|
|
63
|
-
letterSpacing: '0.
|
|
125
|
+
letterSpacing: '0.08em',
|
|
64
126
|
fontSize: '11px',
|
|
127
|
+
whiteSpace: 'nowrap',
|
|
65
128
|
...style,
|
|
66
129
|
}, children: children }));
|
|
67
130
|
export const TD = ({ children, style = {}, ...props }) => (_jsx("td", { ...props, style: {
|
|
68
|
-
padding: `${tokens.spacing[
|
|
131
|
+
padding: `${tokens.spacing[4]} ${tokens.spacing[5]}`,
|
|
69
132
|
color: tokens.color.slate600,
|
|
70
133
|
verticalAlign: 'middle',
|
|
71
134
|
fontSize: tokens.font.sm,
|
|
135
|
+
fontWeight: tokens.font.weightMedium,
|
|
136
|
+
lineHeight: 1.5,
|
|
72
137
|
...style,
|
|
73
138
|
}, children: children }));
|
|
74
139
|
//# sourceMappingURL=Table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export interface
|
|
2
|
+
export interface TabItem {
|
|
3
3
|
label: string;
|
|
4
4
|
value: any;
|
|
5
5
|
icon?: React.ReactNode;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
badge?: React.ReactNode;
|
|
7
|
+
disabled?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export interface
|
|
9
|
+
export interface TabProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
10
10
|
label: string;
|
|
11
11
|
value: any;
|
|
12
12
|
icon?: React.ReactNode;
|
|
13
|
+
badge?: React.ReactNode;
|
|
14
|
+
active?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
variant?: 'standard' | 'pills' | 'underline' | 'dashboard';
|
|
13
17
|
}
|
|
14
18
|
export interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
15
19
|
value: any;
|
|
16
20
|
onChange: (value: any) => void;
|
|
17
|
-
variant?: 'standard' | 'pills' | 'dashboard';
|
|
21
|
+
variant?: 'standard' | 'pills' | 'underline' | 'dashboard';
|
|
18
22
|
items?: TabItem[];
|
|
19
23
|
children?: React.ReactNode;
|
|
20
24
|
columns?: number;
|