shared-design-system 1.6.0 → 1.9.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/README.md CHANGED
@@ -1,258 +1,184 @@
1
- # Shared Design System
2
-
3
- Bộ thư viện thành phần giao diện dùng chung (Common Components) dành cho kiến trúc Microfrontend Portal.
4
-
5
- > **v1.4.0** — Toàn bộ 21 component đã được migrate sang **TypeScript** với strict prop interfacesfull IntelliSense support.
6
-
7
- ## 🚀 Cài đặt
8
-
9
- Thư viện này được quản lý như một package nội bộ trong monorepo. Các MFE có thể sử dụng bằng cách import trực tiếp:
10
-
11
- ```typescript
12
- // Import component + type
13
- import { Button, type ButtonProps } from 'shared-design-system';
14
- import { Card, Badge, tokens } from 'shared-design-system';
15
- ```
16
-
17
- ## 🎨 Design Tokens
18
-
19
- Thư viện sử dụng hệ thống Design Tokens tập trung tại `src/tokens.ts`. Bạn nên sử dụng các token này thay vì mã màu hardcode để đảm bảo tính nhất quán.
20
-
21
- ```typescript
22
- import { tokens, type DesignTokens } from 'shared-design-system';
23
-
24
- const myStyle = {
25
- color: tokens.color.primary,
26
- padding: tokens.spacing['4'],
27
- borderRadius: tokens.radius.md
28
- };
29
- ```
30
-
31
- ## 🧱 Các thành phần chính
32
-
33
- ### 1. Button
34
- Thành phần nút bấm đa năng với các biến thể: `primary`, `secondary`, `danger`, `ghost`.
35
-
36
- ```jsx
37
- <Button variant="primary" onClick={handleClick}>Xác nhận</Button>
38
- <Button variant="ghost" size="sm">Hủy</Button>
39
- ```
40
-
41
- ### 2. Badge
42
- Dùng để hiển thị trạng thái hoặc nhãn dán. Các variant: `success`, `warning`, `danger`, `info`, `slate`.
43
-
44
- ```jsx
45
- <Badge variant="success">Hoàn thành</Badge>
46
- <Badge variant="warning">Chờ duyệt</Badge>
47
- ```
48
-
49
- ### 3. Form Components
50
- Bộ công cụ nhập liệu đồng bộ: `Input`, `Textarea`, `Select`, `Checkbox`.
51
-
52
- ```jsx
53
- <Input label="Họ và tên" placeholder="Nhập tên..." required />
54
- <Select label="Phòng ban">
55
- <option value="IT">Công nghệ thông tin</option>
56
- <option value="HR">Nhân sự</option>
57
- </Select>
58
- ```
59
-
60
- ### 4. Card
61
- Thành phần container dùng để nhóm nội dung. Hỗ trợ `title`, `subtitle` và `footer`.
62
-
63
- ```jsx
64
- <Card title="Thông tin nhân" subtitle="Chi tiết hồ sơ nhân viên">
65
- <Text>Thông tin bên trong card...</Text>
66
- </Card>
67
- ```
68
-
69
- ### 5. Typography
70
- Enforce font types hierarchy: `Heading`, `Text`, `SectionHeader`.
71
-
72
- ```jsx
73
- <Heading level={2}>Tiêu đề lớn</Heading>
74
- <Text size="sm" color="muted">Ghi chú nhỏ</Text>
75
- <SectionHeader title="Thông tin nghiệp vụ" />
76
- ```
77
-
78
- ### 6. ReadOnlyField
79
- Sử dụng trong các màn hình chi tiết để hiển thị dữ liệu ở chế độ chỉ đọc một cách chuyên nghiệp.
80
-
81
- ```jsx
82
- <ReadOnlyField label="Mã yêu cầu" value="RQ-2024-001" />
83
- ```
84
-
85
- ### 7. LoadingSpinner
86
- Animation quay đều sử dụng màu thương hiệu để biểu thị trạng thái đang tải.
87
-
88
- ```jsx
89
- <LoadingSpinner size="md" />
90
- ```
91
-
92
- ---
93
-
94
- ## 🌟 Thành phần nâng cao (Phase 2 - Cảm hứng từ MUI)
95
-
96
- ### 8. Avatar
97
- Hiển thị ảnh đại diện hoặc chữ cái đầu. Hỗ trợ nhiều kích thước (`xs` đến `xl`) và hình dạng (`circle`, `rounded`, `square`).
98
-
99
- ```jsx
100
- <Avatar src="/path/to/img.jpg" size="lg" />
101
- <Avatar variant="rounded">JD</Avatar>
102
- ```
103
-
104
- ### 9. Switch
105
- Nút gạt bật/tắt hiện đại thay thế cho Checkbox.
106
-
107
- ```jsx
108
- <Switch checked={isActive} onChange={toggle} label="Kích hoạt tính năng" />
109
- ```
110
-
111
- ### 10. Tabs & Tab
112
- Hệ thống chuyển đổi nội dung dạng tab. Hỗ trợ variant `standard` và `pills`.
113
-
114
- ```jsx
115
- <Tabs value={tabIndex} onChange={setTabIndex}>
116
- <Tab value={0} label="Tổng quan" icon={<HomeIcon />} />
117
- <Tab value={1} label="Lịch sử" />
118
- </Tabs>
119
- ```
120
-
121
- ### 11. Breadcrumbs
122
- Định vị vị trí trong cấu trúc trang.
123
-
124
- ```jsx
125
- <Breadcrumbs items={[
126
- { label: 'Trang chủ', onClick: goHome },
127
- { label: 'Cài đặt', onClick: goSettings },
128
- { label: 'Thông tin nhân' }
129
- ]} />
130
- ```
131
-
132
- ### 12. Skeleton
133
- Hiệu ứng placeholder khi đang tải dữ liệu.
134
-
135
- ```jsx
136
- <Skeleton variant="circle" width="40px" height="40px" />
137
- <Skeleton variant="rectangular" height="200px" />
138
- <Skeleton variant="text" width="60%" />
139
- ```
140
-
141
- ### 13. Tooltip
142
- Hiển thị chú thích khi di chuột. Hỗ trợ 4 hướng: `top`, `bottom`, `left`, `right`.
143
-
144
- ```jsx
145
- <Tooltip title="Xóa bản ghi này" position="top">
146
- <Button variant="danger">Xóa</Button>
147
- </Tooltip>
148
- ```
149
-
150
- ### 14. Divider
151
- Đường kẻ phân tách nội dung.
152
-
153
- ```jsx
154
- <Divider orientation="horizontal" margin="lg" />
155
- ```
156
-
157
- ---
158
-
159
- ## 🚀 Tính năng mở rộng (Phase 3 - Robust System)
160
-
161
- ### 15. Stack
162
- Công cụ quản bố cục và khoảng cách tự động.
163
-
164
- ```jsx
165
- <Stack direction="row" spacing="md" align="center">
166
- <Button>Lưu</Button>
167
- <Button variant="ghost">Hủy</Button>
168
- </Stack>
169
- ```
170
-
171
- ### 16. Alert
172
- Thanh thông báo theo mức độ nghiêm trọng: `success`, `info`, `warning`, `error`.
173
-
174
- ```jsx
175
- <Alert severity="success" title="Thành công">Dữ liệu đã được lưu.</Alert>
176
- <Alert severity="error">Có lỗi xảy ra, vui lòng thử lại.</Alert>
177
- ```
178
-
179
- ### 17. Tag/Chip
180
- Nhãn dán cho dữ liệu, hỗ trợ nút đóng (close).
181
-
182
- ```jsx
183
- <Tag color="primary" variant="solid">Mới</Tag>
184
- <Tag color="danger" onClose={handleDelete}>Hết hạn</Tag>
185
- ```
186
-
187
- ### 18. Progress
188
- Thanh tiến trình dạng đường thẳng (Linear Progress).
189
-
190
- ```jsx
191
- <Progress value={75} showLabel color="success" />
192
- ```
193
-
194
- ### 19. Steps
195
- Thanh điều hướng quy trình (Workflow). Hỗ trợ chiều dọc và chiều ngang.
196
-
197
- ```jsx
198
- <Steps
199
- current={1}
200
- items={[
201
- { title: 'Khởi tạo', description: 'User gửi yêu cầu' },
202
- { title: 'Phê duyệt', description: 'Đang chờ quản lý' },
203
- { title: 'Hoàn tất' }
204
- ]}
205
- />
206
- ```
207
-
208
- ### 20. Table (Styled)
209
- Bộ thành phần xây dựng bảng dữ liệu chuyên nghiệp.
210
-
211
- ```jsx
212
- <TableContainer>
213
- <THead>
214
- <TR>
215
- <TH>Họ Tên</TH>
216
- <TH>Trạng Thái</TH>
217
- </TR>
218
- </THead>
219
- <TBody>
220
- <TR>
221
- <TD>Nguyễn Văn A</TD>
222
- <TD><Badge variant="success">Active</Badge></TD>
223
- </TR>
224
- </TBody>
225
- </TableContainer>
226
- ```
227
-
228
- ### 21. Radio & RadioGroup
229
- Lựa chọn duy nhất trong danh sách.
230
-
231
- ```jsx
232
- <RadioGroup direction="row">
233
- <Radio name="gender" value="male" label="Nam" checked />
234
- <Radio name="gender" value="female" label="Nữ" />
235
- </RadioGroup>
236
- ```
237
-
238
- ## 🛠 Nguyên tắc phát triển
239
-
240
- 1. **Tokens First**: Luôn kiểm tra `src/tokens.ts` trước khi thêm giá trị mới.
241
- 2. **Stateless**: Giữ component đơn giản nhất có thể, chỉ xử lý UI và nhận data qua props.
242
- 3. **Prefixing**: Khi kết hợp với Tailwind trong từng MFE, hãy sử dụng prefix tương ứng của MFE đó để tránh xung đột style với Portal.
243
- 4. **Type-safe**: Mỗi component có Props interface riêng. Luôn import type khi chỉ cần dùng cho annotation.
244
-
245
- ## 📦 Build & Publish
246
-
247
- ```bash
248
- # Type-check
249
- npm run typecheck
250
-
251
- # Build ra dist/ (tự động chạy khi publish)
252
- npm run build
253
-
254
- # Publish (tự động chạy typecheck + build trước)
255
- npm publish
256
- ```
257
-
258
- > **Lưu ý:** File `dist/` được generate tự động, không commit vào git.
1
+ # Shared Design System
2
+
3
+ Bộ thư viện thành phần giao diện dùng chung (Common Components) và hệ thống Design Tokens dành cho kiến trúc Microfrontend Portal.
4
+
5
+ > **Current Version: v1.7.0** — Hệ thống đã được nâng cấp toàn diện với TypeScript, Tailwind Preset23+ components sẵn sàng cho sản xuất.
6
+
7
+ ---
8
+
9
+ ## 🚀 Cài đặt
10
+
11
+ Thư viện này được quản lý như một package nội bộ trong monorepo. Bạn có thể sử dụng trực tiếp trong các ứng dụng MFE:
12
+
13
+ ```bash
14
+ # Trong package.json của MFE
15
+ "dependencies": {
16
+ "shared-design-system": "workspace:*"
17
+ }
18
+ ```
19
+
20
+ Dùng trong code:
21
+ ```typescript
22
+ import { Button, Card, tokens } from 'shared-design-system';
23
+ ```
24
+
25
+ ---
26
+
27
+ ## 🎨 Tích hợp Tailwind CSS
28
+
29
+ Thư viện cung cấp một Tailwind Preset để đồng bộ hóa bảng màu và cấu hình font.
30
+
31
+ ### 1. Cấu hình `tailwind.config.ts`
32
+ Trong project MFE của bạn, hãy import và sử dụng preset:
33
+
34
+ ```typescript
35
+ import type { Config } from 'tailwindcss';
36
+ import sharedPreset from 'shared-design-system/tailwind.preset';
37
+
38
+ const config: Config = {
39
+ presets: [sharedPreset],
40
+ content: [
41
+ "./src/**/*.{js,ts,jsx,tsx}",
42
+ // Quan trọng: Thêm đường dẫn tới file source của shared-design-system để Tailwind scan classes
43
+ "./node_modules/shared-design-system/src/components/**/*.{js,ts,jsx,tsx}"
44
+ ],
45
+ theme: {
46
+ extend: {
47
+ // Các tùy chỉnh riêng cho MFE của bạn
48
+ },
49
+ },
50
+ plugins: [],
51
+ };
52
+
53
+ export default config;
54
+ ```
55
+
56
+ ---
57
+
58
+ ## 🧱 Hệ thống Thành phần (Components)
59
+
60
+ ### 🔹 Cơ bản (Basic Elements)
61
+ * **Button**: Nút bấm đa năng (`primary`, `secondary`, `danger`, `ghost`).
62
+ * **Badge**: Nhãn trạng thái (`success`, `warning`, `danger`, `info`).
63
+ * **Typography**: Hệ thống phân cấp chữ (`Heading`, `Text`, `SectionHeader`).
64
+ * **LoadingSpinner**: Hiệu ứng xoay khi đang tải dữ liệu.
65
+ * **Divider**: Đường kẻ phân tách nội dung.
66
+ * **Progress**: Thanh tiến trình (Linear Progress).
67
+
68
+ ### 🔹 Nhập liệu (Form & Inputs)
69
+ * **Input / Textarea**: Ô nhập văn bản hỗ trợ label và validation state.
70
+ * **Select**: Menu lựa chọn dropdown.
71
+ * **Checkbox / Radio**: Lựa chọn đơn hoặc nhiều.
72
+ * **Switch**: Nút gạt bật/tắt hiện đại.
73
+
74
+ ### 🔹 Điều hướng & Cấu trúc (Navigation & Layout)
75
+ * **Breadcrumbs**: Chỉ dẫn vị trí trang.
76
+ * **Tabs**: Hệ thống chuyển đổi nội dung, hỗ trợ truyền `items` cho tiện lợi.
77
+ ```jsx
78
+ <Tabs
79
+ value={currentTab}
80
+ onChange={setCurrentTab}
81
+ items={[
82
+ { label: 'Tổng quan', value: 'overview' },
83
+ { label: 'Cài đặt', value: 'settings' }
84
+ ]}
85
+ />
86
+ ```
87
+ * **Steps**: Quy trình thực hiện (Workflow).
88
+ * **Stack**: Quản lý khoảng cách tự động giữa các phần tử.
89
+ * **Card**: Container bọc nội dung cao cấp.
90
+
91
+ ### 🔹 Dữ liệu & Danh sách (Data Display)
92
+ * **Table**: Component xây dựng bảng dữ liệu chuyên nghiệp theo hướng data-driven.
93
+ ```jsx
94
+ import { Table } from 'shared-design-system';
95
+
96
+ <Table
97
+ columns={[
98
+ { key: 'name', label: 'Họ tên' },
99
+ { key: 'role', label: 'Vai trò' }
100
+ ]}
101
+ data={[
102
+ { name: 'Nguyễn Văn A', role: 'Admin' },
103
+ { name: 'Lê Thị B', role: 'User' }
104
+ ]}
105
+ />
106
+ ```
107
+ * **List & ListItem**: Danh sách hiển thị theo cấu trúc mảng hoặc children.
108
+ ```jsx
109
+ import { List, ListItem, Button } from 'shared-design-system';
110
+
111
+ <List
112
+ items={[
113
+ { title: 'Thông tin người dùng', id: 1 },
114
+ { title: 'Cài đặt hệ thống', id: 2 }
115
+ ]}
116
+ renderItem={(item) => (
117
+ <ListItem action={<Button size="sm">Sửa</Button>}>
118
+ {item.title}
119
+ </ListItem>
120
+ )}
121
+ />
122
+ ```
123
+ * **Tag/Chip**: Nhãn dán hỗ trợ nút đóng (close).
124
+ * **Avatar**: Ảnh đại diện hoặc tên viết tắt.
125
+ * **ReadOnlyField**: Hiển thị dữ liệu ở chế độ chỉ đọc.
126
+ * **Skeleton**: Placeholder khi đang tải.
127
+
128
+ ### 🔹 Tương tác (Feedback & Overlays)
129
+ * **Alert**: Thông báo mức độ nghiêm trọng (`success`, `error`, etc.).
130
+ * **Tooltip**: Chú thích khi di chuột.
131
+ * **ConfirmModal**:
132
+ ```jsx
133
+ <ConfirmModal
134
+ isOpen={showModal}
135
+ title="Xác nhận xóa"
136
+ message="Bạn chắc chắn muốn xóa bản ghi này?"
137
+ variant="danger"
138
+ onConfirm={handleDelete}
139
+ onCancel={() => setShowModal(false)}
140
+ />
141
+ ```
142
+
143
+ ---
144
+
145
+ ## 🔧 Design Tokens
146
+
147
+ Tránh sử dụng mã màu hardcoded. Hãy sử dụng hệ thống tokens để đảm bảo tính nhất quán và hỗ trợ Theming trong tương lai.
148
+
149
+ ```typescript
150
+ import { tokens } from 'shared-design-system';
151
+
152
+ const style = {
153
+ backgroundColor: tokens.color.surfaceAlt,
154
+ padding: tokens.spacing[4],
155
+ borderRadius: tokens.radius.lg,
156
+ boxShadow: tokens.shadow.md
157
+ };
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 🛠 Nguyên tắc phát triển
163
+
164
+ 1. **Strict Typing**: Tất cả components phải có Props interface được export rõ ràng.
165
+ 2. **Stateless First**: Ưu tiên logic xử lý ở phía ứng dụng, component chỉ tập trung vào hiển thị (UI).
166
+ 3. **Semantic HTML**: Sử dụng đúng các thẻ HTML (button, nav, section) để tối ưu SEO và Accessibility.
167
+ 4. **Composition Over Inheritance**: Tận dụng `children` prop để tạo ra các layout linh hoạt.
168
+
169
+ ---
170
+
171
+ ## 📦 Quy trình Build
172
+
173
+ ```bash
174
+ # Kiểm tra lỗi Type
175
+ npm run typecheck
176
+
177
+ # Build ra thư mục dist/
178
+ npm run build
179
+ ```
180
+
181
+ > **Lưu ý:** Thư mục `dist/` sẽ chứa mã JS đã transpose và các file `.d.ts`. Luôn chạy build trước khi tích hợp vào Portal.
182
+
183
+ ---
184
+ © 2024 Portal Design System Team.
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
- export interface ListProps extends React.HTMLAttributes<HTMLUListElement> {
3
- children: React.ReactNode;
2
+ export interface ListProps<T = any> extends Omit<React.HTMLAttributes<HTMLUListElement>, 'children'> {
3
+ children?: React.ReactNode;
4
+ items?: T[];
5
+ renderItem?: (item: T, index: number) => React.ReactNode;
4
6
  }
5
- export declare const List: React.FC<ListProps>;
7
+ export declare const List: <T extends any>({ children, items, renderItem, className, style, ...props }: ListProps<T>) => import("react/jsx-runtime").JSX.Element;
6
8
  export interface ListItemProps extends React.HTMLAttributes<HTMLLIElement> {
7
9
  children: React.ReactNode;
8
10
  icon?: React.ReactNode;
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
2
3
  import { tokens } from '../tokens';
3
- export const List = ({ children, className = '', style = {} }) => (_jsx("ul", { style: {
4
+ export const List = ({ children, items, renderItem, className = '', style = {}, ...props }) => (_jsx("ul", { style: {
4
5
  listStyle: 'none',
5
6
  padding: 0,
6
7
  margin: 0,
@@ -9,7 +10,7 @@ export const List = ({ children, className = '', style = {} }) => (_jsx("ul", {
9
10
  overflow: 'hidden',
10
11
  backgroundColor: tokens.color.surface,
11
12
  ...style
12
- }, className: className, children: children }));
13
+ }, className: className, ...props, children: items && renderItem ? items.map((item, index) => _jsx(React.Fragment, { children: renderItem(item, index) }, index)) : children }));
13
14
  export const ListItem = ({ children, icon, action, onClick, className = '', style = {}, divider = true, active = false, ...props }) => {
14
15
  const itemStyle = {
15
16
  display: 'flex',
@@ -1 +1 @@
1
- {"version":3,"file":"ListComponents.js","sourceRoot":"","sources":["../../../src/components/ListComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListComponents.js","sourceRoot":"","sources":["../../../src/components/ListComponents.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,24 @@
1
1
  import React from 'react';
2
+ export interface TableColumn<T = any> {
3
+ key: string | number;
4
+ label: React.ReactNode;
5
+ width?: string | number;
6
+ align?: 'left' | 'center' | 'right';
7
+ render?: (value: any, record: T, index: number) => React.ReactNode;
8
+ headerStyle?: React.CSSProperties;
9
+ cellStyle?: React.CSSProperties;
10
+ }
11
+ export interface TableProps<T = any> {
12
+ columns: TableColumn<T>[];
13
+ data: T[];
14
+ onRowClick?: (record: T, index: number) => void;
15
+ className?: string;
16
+ style?: React.CSSProperties;
17
+ headerStyle?: React.CSSProperties;
18
+ rowStyle?: React.CSSProperties | ((record: T, index: number) => React.CSSProperties);
19
+ emptyText?: React.ReactNode;
20
+ }
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;
2
22
  export interface TableContainerProps {
3
23
  children: React.ReactNode;
4
24
  className?: string;
@@ -17,6 +37,7 @@ export interface TRProps {
17
37
  children: React.ReactNode;
18
38
  onClick?: React.MouseEventHandler<HTMLTableRowElement>;
19
39
  active?: boolean;
40
+ style?: React.CSSProperties;
20
41
  }
21
42
  export declare const TR: React.FC<TRProps>;
22
43
  export interface THProps {
@@ -1,5 +1,18 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { tokens } from '../tokens';
3
+ export const Table = ({ columns, data, onRowClick, className = '', style = {}, headerStyle = {}, rowStyle = {}, emptyText = 'Không có dữ liệu', }) => {
4
+ return (_jsxs(TableContainer, { className: className, style: style, children: [_jsx(THead, { children: _jsx(TR, { children: columns.map((col) => (_jsx(TH, { style: {
5
+ textAlign: col.align || 'left',
6
+ width: col.width,
7
+ ...col.headerStyle,
8
+ ...headerStyle,
9
+ }, children: col.label }, col.key.toString()))) }) }), _jsx(TBody, { children: data.length > 0 ? (data.map((record, rowIndex) => (_jsx(TR, { onClick: onRowClick ? () => onRowClick(record, rowIndex) : undefined, style: typeof rowStyle === 'function' ? rowStyle(record, rowIndex) : rowStyle, children: columns.map((col) => (_jsx(TD, { style: {
10
+ textAlign: col.align || 'left',
11
+ ...col.cellStyle,
12
+ }, children: col.render
13
+ ? col.render(record[col.key], record, rowIndex)
14
+ : record[col.key] }, col.key.toString()))) }, record.id || record.key || rowIndex)))) : (_jsx(TR, { children: _jsx(TD, { style: { textAlign: 'center', padding: tokens.spacing[12], color: tokens.color.textMuted }, children: emptyText }) })) })] }));
15
+ };
3
16
  export const TableContainer = ({ children, className = '', style = {} }) => (_jsx("div", { style: {
4
17
  width: '100%',
5
18
  overflowX: 'auto',
@@ -20,11 +33,12 @@ export const THead = ({ children }) => (_jsx("thead", { style: {
20
33
  borderBottom: `2px solid ${tokens.color.border}`,
21
34
  }, children: children }));
22
35
  export const TBody = ({ children }) => (_jsx("tbody", { style: { backgroundColor: tokens.color.surface }, children: children }));
23
- export const TR = ({ children, onClick, active = false }) => (_jsx("tr", { onClick: onClick, style: {
36
+ export const TR = ({ children, onClick, active = false, style = {} }) => (_jsx("tr", { onClick: onClick, style: {
24
37
  borderBottom: `1px solid ${tokens.color.surfaceAlt}`,
25
38
  backgroundColor: active ? tokens.color.primaryLight + '44' : 'transparent',
26
39
  transition: tokens.transition.fast,
27
40
  cursor: onClick ? 'pointer' : 'default',
41
+ ...style,
28
42
  }, onMouseEnter: onClick
29
43
  ? (e) => {
30
44
  e.currentTarget.style.backgroundColor = tokens.color.surfaceAlt;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table.tsx"],"names":[],"mappings":"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"}
@@ -6,10 +6,17 @@ export interface TabProps extends React.HTMLAttributes<HTMLDivElement> {
6
6
  active?: boolean;
7
7
  variant?: 'standard' | 'pills';
8
8
  }
9
- export interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ export interface TabItem {
10
+ label: string;
11
+ value: any;
12
+ icon?: React.ReactNode;
13
+ }
14
+ export interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
10
15
  value: any;
11
16
  onChange: (value: any) => void;
12
17
  variant?: 'standard' | 'pills';
18
+ items?: TabItem[];
19
+ children?: React.ReactNode;
13
20
  }
14
21
  export declare const Tabs: React.FC<TabsProps>;
15
22
  export declare const Tab: React.FC<TabProps>;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { tokens } from '../tokens';
4
- export const Tabs = ({ value, onChange, children, variant = 'standard', className = '', style = {} }) => {
4
+ export const Tabs = ({ value, onChange, items, children, variant = 'standard', className = '', style = {} }) => {
5
5
  const containerStyle = {
6
6
  display: 'flex',
7
7
  borderBottom: variant === 'standard' ? `1px solid ${tokens.color.border}` : 'none',
@@ -10,7 +10,7 @@ export const Tabs = ({ value, onChange, children, variant = 'standard', classNam
10
10
  overflowX: 'auto',
11
11
  ...style
12
12
  };
13
- return (_jsx("div", { style: containerStyle, className: className, children: React.Children.map(children, child => {
13
+ return (_jsx("div", { style: containerStyle, className: className, children: items ? items.map((item, index) => (_jsx(Tab, { label: item.label, value: item.value, icon: item.icon, active: item.value === value, onClick: () => onChange(item.value), variant: variant }, index))) : React.Children.map(children, child => {
14
14
  if (!React.isValidElement(child))
15
15
  return null;
16
16
  return React.cloneElement(child, {
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs.tsx"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export type { AvatarProps } from './components/Avatar';
19
19
  export { Switch } from './components/Switch';
20
20
  export type { SwitchProps } from './components/Switch';
21
21
  export { Tabs, Tab } from './components/Tabs';
22
- export type { TabsProps, TabProps } from './components/Tabs';
22
+ export type { TabsProps, TabProps, TabItem } from './components/Tabs';
23
23
  export { Breadcrumbs } from './components/Breadcrumbs';
24
24
  export type { BreadcrumbsProps } from './components/Breadcrumbs';
25
25
  export { Divider } from './components/Divider';
@@ -38,8 +38,8 @@ export { Tag } from './components/Tag';
38
38
  export type { TagProps } from './components/Tag';
39
39
  export { List, ListItem } from './components/ListComponents';
40
40
  export type { ListProps, ListItemProps } from './components/ListComponents';
41
- export { TableContainer, THead, TBody, TR, TH, TD } from './components/Table';
42
- export type { TableContainerProps, THeadProps, TBodyProps, TRProps, THProps, TDProps } from './components/Table';
41
+ export { Table, TableContainer, THead, TBody, TR, TH, TD } from './components/Table';
42
+ export type { TableProps, TableColumn, TableContainerProps, THeadProps, TBodyProps, TRProps, THProps, TDProps } from './components/Table';
43
43
  export { Radio, RadioGroup } from './components/Radio';
44
44
  export type { RadioProps, RadioGroupProps } from './components/Radio';
45
45
  export { Steps } from './components/Steps';
package/dist/src/index.js CHANGED
@@ -21,7 +21,7 @@ export { Alert } from './components/Alert';
21
21
  export { Progress } from './components/Progress';
22
22
  export { Tag } from './components/Tag';
23
23
  export { List, ListItem } from './components/ListComponents';
24
- export { TableContainer, THead, TBody, TR, TH, TD } from './components/Table';
24
+ export { Table, TableContainer, THead, TBody, TR, TH, TD } from './components/Table';
25
25
  export { Radio, RadioGroup } from './components/Radio';
26
26
  export { Steps } from './components/Steps';
27
27
  // ─── Design Tokens ────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,iFAAiF;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,iFAAiF;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,iFAAiF;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAGrF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,iFAAiF;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shared-design-system",
3
- "version": "1.6.0",
3
+ "version": "1.9.0",
4
4
  "description": "Shared Tailwind Design System & UI Tokens for all Micro Frontends",
5
5
  "main": "dist/src/index.js",
6
6
  "module": "dist/src/index.js",
@@ -40,14 +40,14 @@
40
40
  "access": "public"
41
41
  },
42
42
  "peerDependencies": {
43
- "react": "^18.0.0",
44
- "react-dom": "^18.0.0",
43
+ "react": "^19.0.0",
44
+ "react-dom": "^19.0.0",
45
45
  "tailwindcss": "^3.0.0"
46
46
  },
47
47
  "devDependencies": {
48
- "typescript": "^5.4.0",
49
- "@types/react": "^18.2.0",
50
- "@types/react-dom": "^18.2.0",
48
+ "typescript": "^5.6.3",
49
+ "@types/react": "^19.0.0",
50
+ "@types/react-dom": "^19.0.0",
51
51
  "@types/node": "^20.11.0"
52
52
  }
53
53
  }