@nhatdev94/common-ui 1.3.5 → 1.3.7

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 (2) hide show
  1. package/README.md +41 -207
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,38 +1,24 @@
1
1
  # 📦 Common UI Library
2
+ ## Document Version: 1.0
3
+ ## Status: 🟢 Stable
2
4
 
3
- **Package Name:** `@nhatdev94/common-ui`\
4
- **Document Version:** 1.1\
5
- **Last Updated:**
6
- **Owner:**
7
- **Status:**
5
+ @nhatdev94/common-ui là thư viện UI component dùng chung, giúp chuẩn hóa giao diện, giảm thiểu trùng lặp code và đảm bảo tính nhất quán cho toàn bộ hệ sinh thái frontend.
8
6
 
9
7
  ------------------------------------------------------------------------
10
8
 
11
- ## Requirements
12
-
13
- This package requires:
14
-
15
- - React 18+
16
- - Tailwind CSS v4
17
-
18
- ------------------------------------------------------------------------
19
-
20
- 🚀 Hướng dẫn tích hợp cho dự án mới
21
-
22
- Để sử dụng thư viện trong các dự án mới (Vite, Next.js, v.v.), vui lòng làm theo các bước hướng dẫn dưới đây.
23
-
24
- 1️⃣ Cài đặt
9
+ ## 1️⃣ Hướng dẫn tích hợp cho dự án mới
10
+ Để sử dụng thư viện trong các dự án (Vite, Next.js, v.v.), vui lòng thực hiện các bước sau:
25
11
 
12
+ ### Cài đặt package
26
13
  ``` bash
27
14
  npm install @nhatdev94/common-ui
28
15
  ```
29
16
 
30
- 2️⃣ Thiết lập Styles & Themes
31
-
32
- Mở file CSS chính của bạn (ví dụ: src/index.css hoặc app/globals.css) và cấu hình như sau:
33
-
17
+ ### Thiết lập Styles & Themes
18
+ Mở file CSS chính (ví dụ: src/index.css hoặc app/globals.css) và cấu hình:
34
19
  ``` bash
35
20
  @import "tailwindcss";
21
+ // src/index.css
36
22
 
37
23
  /* -----------------------------------------------------------
38
24
  * IMPORT THEME
@@ -40,214 +26,62 @@ Mở file CSS chính của bạn (ví dụ: src/index.css hoặc app/globals.css
40
26
  * ----------------------------------------------------------- */
41
27
  @import "@nhatdev94/common-ui/themes/default.css";
42
28
 
43
- ```
44
-
45
- Nếu bạn nhận thấy các Component hiển thị nhưng bị mất các class tiện ích của Tailwind (như padding, margin, màu sắc động), đó là do Tailwind v4 chưa quét qua mã nguồn của thư viện.
46
-
47
- Hãy thêm dòng @source bên dưới phần import trong file CSS:
48
-
49
- ``` bash
29
+ /* Chỉnh sửa đường dẫn đến node_modules của bạn */
50
30
  @source "../node_modules/@nhatdev94/common-ui/dist/**/*.js";
51
31
  ```
52
32
 
53
33
  ------------------------------------------------------------------------
54
34
 
55
- 🛠 Cách sử dụng Component
56
-
57
- Sau khi thiết lập xong, bạn có thể bắt đầu sử dụng các component trong dự án của mình:
35
+ ## 2️⃣ Hướng dẫn sử dụng Components
36
+ Thư viện được xây dựng theo tư duy Atomic Design, đảm bảo các component là Stateless by default và Business-agnostic.
58
37
 
38
+ ### Storybook
59
39
  ``` bash
60
- import { Button } from '@nhatdev94/common-ui';
61
-
62
- export default function App() {
63
- return (
64
- <div className="flex gap-4 p-8">
65
- <Button variant="primary">Click Me</Button>
66
- <Button variant="outline">Cancel</Button>
67
- </div>
68
- );
69
- }
70
- ```
71
-
72
- ------------------------------------------------------------------------
73
-
74
- 🛠 **Quy trình Cập nhật và Nâng cấp Package (Workflow)**
75
-
76
- 1. **Giai đoạn Cập nhật Package (Pkg Side)**
77
-
78
- Khi có yêu cầu thay đổi tính năng hoặc sửa lỗi trong package:
79
-
80
- - **Modify Code**: Thực hiện thay đổi logic trong source code của package.
81
- - **Test**: Chạy unit test của package để đảm bảo không làm hỏng các tính năng cũ.
82
- - **Bump Version**: Cập nhật phiên bản trong file package.json theo nguyên tắc Semantic Versioning (SemVer):
83
- + *Major (v1.0.0 -> v2.0.0)*: Có thay đổi lớn, không tương thích ngược.
84
- + *Minor (v1.0.0 -> v1.1.0)*: Thêm tính năng mới nhưng vẫn tương thích ngược.
85
- + *Patch (v1.0.0 -> v1.0.1)*: Sửa lỗi nhỏ.
86
- - **Build & Publish**: Chạy lệnh build (nếu có) và đẩy lên Registry (NPM, GitHub Packages, hoặc Azure Artifacts).
87
-
88
- ```bash
89
- npm publish
40
+ npm run storybook
90
41
  ```
42
+ ### Component
91
43
 
92
- 2. **Giai đoạn Tích hợp vào Ứng dụng (App Side)**
93
-
94
- Sau khi package đã có phiên bản mới trên kho lưu trữ, ứng dụng chính cần được cập nhật:
95
- - **Upgrade Command**: Sử dụng lệnh để cài đặt phiên bản cụ thể.
96
44
  ```bash
97
- npm install @nhatdev94/common-ui@latest
98
- ```
99
- - **Regression Test**: Chạy ứng dụng chính để kiểm tra xem package mới có hoạt động trơn tru với các module khác không.
100
-
101
- ------------------------------------------------------------------------
102
-
103
- # 1. Executive Summary
104
-
105
- `@nhatdev94/common-ui` là thư viện UI component dùng chung cho toàn bộ hệ
106
- sinh thái frontend của công ty.
107
-
108
- Mục tiêu:
109
-
110
- - Chuẩn hóa giao diện giữa các hệ thống
111
- - Giảm duplication code
112
- - Tăng tốc độ phát triển
113
- - Đảm bảo tính nhất quán (consistency)
114
- - Tăng khả năng maintain và scale
115
-
116
- ------------------------------------------------------------------------
117
-
118
- # 2. Scope
119
-
120
- ## 2.1 In Scope
121
-
122
- - Atomic UI Components (Button, Input, Modal, Table, etc.)
123
- - Design tokens (color, spacing, typography)
124
- - Accessibility compliant components
45
+ import { Button } from '@nhatdev94/common-ui'
125
46
 
126
- ## 2.2 Out of Scope
127
-
128
- - Business logic
129
- - API integration
130
- - Global state management
131
- - Application routing
132
- - Domain-specific UI
133
-
134
- ------------------------------------------------------------------------
135
-
136
- # 3. Architecture Overview
137
-
138
- ## 3.1 Design Principles
139
-
140
- 1. Component-driven development
141
- 2. Stateless by default
142
- 3. Business-agnostic
143
- 4. Backward-compatible changes
144
- 5. Accessibility-first mindset
145
-
146
- ------------------------------------------------------------------------
147
-
148
- ## 3.2 Tech Stack
149
-
150
- - React 18+
151
- - TypeScript
152
- - TailwindCSS
153
- - Storybook
154
- - Vitest
155
- - tsup
156
-
157
- ------------------------------------------------------------------------
158
-
159
- # 4. Folder Structure
160
-
161
- ``` bash
162
- common-ui/
163
- ├─ src/
164
- │ ├─ components/
165
- │ ├─ hooks/
166
- │ ├─ lib/
167
- │ ├─ stories/
168
- │ ├─ themes/
169
- │ └─ index.ts
170
- ├─ .storybook/
171
- ├─ dist/
172
- ├─ package.json
173
- ├─ tsconfig.json
174
- ├─ tsup.config.json
175
- └─ README.md
176
- ```
177
-
178
- ------------------------------------------------------------------------
179
-
180
- # 5. Component Standards
181
-
182
- ## Naming Convention
183
-
184
- - PascalCase cho component name
185
- - KebabCase cho file name
186
- - Props interface: `ComponentNameProps`
187
- - Không sử dụng default export
188
-
189
- ## Rules
190
-
191
- - Không gọi API
192
- - Không import từ application layer
193
- - Không chứa business validation logic
194
- - Không phụ thuộc Redux / Zustand / App Context
195
-
196
- ------------------------------------------------------------------------
197
-
198
- # 6. Storybook Governance
199
-
200
- - Mỗi component bắt buộc có story
201
- - Có default state và variants
202
- - Có edge cases
203
-
204
- Run:
205
-
206
- ``` bash
207
- npm run storybook
47
+ export default async function DemoPage() {
48
+ return (
49
+ <Button>Click Me<Button>
50
+ )
51
+ }
208
52
  ```
209
53
 
210
- Build:
211
-
212
- ``` bash
213
- npm run build-storybook
214
- ```
54
+ - [Data Table](./src/docs/table.md)
215
55
 
216
56
  ------------------------------------------------------------------------
217
57
 
218
- # 7. Versioning Policy
58
+ ## 3️⃣ Quy trình cập nhật và nâng cấp Package
219
59
 
220
- Tuân theo Semantic Versioning:
60
+ ### Các quy tắc (Rules) cần tuân thủ
61
+ Để đảm bảo tính ổn định, mọi đóng góp phải tuân thủ:
221
62
 
222
- Type Meaning
223
- ------- ------------------
224
- MAJOR Breaking changes
225
- MINOR New feature
226
- PATCH Bug fix
63
+ - **Naming**: Sử dụng PascalCase cho tên component và kebab-case cho tên file.
227
64
 
228
- ------------------------------------------------------------------------
65
+ - **No Side Effects**: Tuyệt đối không gọi API hoặc chứa logic nghiệp vụ (Business logic).
229
66
 
230
- # 8. CI/CD Workflow
67
+ - **Independence**: Không phụ thuộc vào Redux, Zustand hoặc App Context của dự án tích hợp.
231
68
 
232
- 1. Pull Request
233
- 2. Lint & Test (planned)
234
- 3. Review
235
- 4. Merge to main
236
- 5. Automated publish (planned)
69
+ - **Naming Props**: Interface cho props phải có định dạng ComponentNameProps.
237
70
 
238
- ------------------------------------------------------------------------
71
+ ### Quy trình thực hiện (Workflow)
72
+ #### Giai đoạn 1: Cập nhật tại Package (Pkg Side)
73
+ - **Modify Code**: Chỉnh sửa source code trong `src/components`.
239
74
 
240
- # 9. Security & Performance
75
+ - **Test**: Chạy unit test và kiểm tra trên `npm run storybook`.
241
76
 
242
- - Tree-shakeable exports
243
- - Không bundle React
244
- - ESM & CJS output
245
- - Audit dependency định kỳ
77
+ - **Bump Version**: Cập nhật phiên bản trong `package.json` theo chuẩn SemVer:
78
+ + PATCH: Sửa lỗi nhỏ.
79
+ + MINOR: Thêm tính năng mới (tương thích ngược).
80
+ + MAJOR: Thay đổi lớn (không tương thích ngược).
246
81
 
247
- ------------------------------------------------------------------------
82
+ - **Build & Publish**: Chạy `npm run build` và đẩy lên registry bằng `npm publish`.
248
83
 
249
- # 10. Conclusion
84
+ #### Giai đoạn 2: Tích hợp vào Ứng dụng (App Side)
85
+ - **Upgrade**: Chạy lệnh `npm install @nhatdev94/common-ui@latest`.
250
86
 
251
- `@nhatdev94/common-ui` nền tảng UI governance cho toàn bộ frontend
252
- ecosystem, đảm bảo consistency, scalability và maintainability cho sản
253
- phẩm.
87
+ - **Regression Test**: Kiểm tra lại các module liên quan để đảm bảo không có lỗi phát sinh.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nhatdev94/common-ui",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",