@nhatdev94/common-ui 1.1.14 → 1.1.15

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 +253 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -0,0 +1,253 @@
1
+ # 📦 Common UI Library
2
+
3
+ **Package Name:** `@nhatdev94/common-ui`\
4
+ **Document Version:** 1.1\
5
+ **Last Updated:**
6
+ **Owner:**
7
+ **Status:**
8
+
9
+ ------------------------------------------------------------------------
10
+
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
25
+
26
+ ``` bash
27
+ npm install @nhatdev94/common-ui
28
+ ```
29
+
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
+
34
+ ``` bash
35
+ @import "tailwindcss";
36
+
37
+ /* -----------------------------------------------------------
38
+ * IMPORT THEME
39
+ * Cung cấp màu sắc, biến CSS nền và thiết lập layout cơ bản.
40
+ * ----------------------------------------------------------- */
41
+ @import "@nhatdev94/common-ui/themes/default.css";
42
+
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
50
+ @source "../node_modules/@nhatdev94/common-ui/dist/**/*.js";
51
+ ```
52
+
53
+ ------------------------------------------------------------------------
54
+
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:
58
+
59
+ ``` 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
90
+ ```
91
+
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
+ ```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
125
+
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
208
+ ```
209
+
210
+ Build:
211
+
212
+ ``` bash
213
+ npm run build-storybook
214
+ ```
215
+
216
+ ------------------------------------------------------------------------
217
+
218
+ # 7. Versioning Policy
219
+
220
+ Tuân theo Semantic Versioning:
221
+
222
+ Type Meaning
223
+ ------- ------------------
224
+ MAJOR Breaking changes
225
+ MINOR New feature
226
+ PATCH Bug fix
227
+
228
+ ------------------------------------------------------------------------
229
+
230
+ # 8. CI/CD Workflow
231
+
232
+ 1. Pull Request
233
+ 2. Lint & Test (planned)
234
+ 3. Review
235
+ 4. Merge to main
236
+ 5. Automated publish (planned)
237
+
238
+ ------------------------------------------------------------------------
239
+
240
+ # 9. Security & Performance
241
+
242
+ - Tree-shakeable exports
243
+ - Không bundle React
244
+ - ESM & CJS output
245
+ - Audit dependency định kỳ
246
+
247
+ ------------------------------------------------------------------------
248
+
249
+ # 10. Conclusion
250
+
251
+ `@nhatdev94/common-ui` là 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nhatdev94/common-ui",
3
- "version": "1.1.14",
3
+ "version": "1.1.15",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",