@amogads/ui 1.1.0 → 1.1.1
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 +295 -295
- package/dist/index.js +2393 -766
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2448 -768
- package/dist/index.mjs.map +1 -1
- package/dist/pages.js +5920 -5767
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +5931 -5722
- package/dist/pages.mjs.map +1 -1
- package/package.json +257 -257
package/README.md
CHANGED
|
@@ -1,295 +1,295 @@
|
|
|
1
|
-
# AmogaDS — Central Design System (`@amogads/ui`)
|
|
2
|
-
|
|
3
|
-
Welcome to the **Amoga Design System (AmogaDS)** repository. This repository serves two unified purposes:
|
|
4
|
-
1. **Source of Truth for `@amogads/ui`**: A centralized, versioned design system package containing design tokens, atomic UI primitives, reusable business patterns, and page templates published directly to the public [NPM Registry](https://www.npmjs.com/package/@amogads/ui).
|
|
5
|
-
2. **Interactive Component Gallery**: A live Next.js documentation and preview application for exploring components, states, responsive viewports, and theme variants.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 📦 Consuming `@amogads/ui` in Next.js Applications
|
|
10
|
-
|
|
11
|
-
### 1. Install Package
|
|
12
|
-
Install directly from NPM into any Next.js (or React) project:
|
|
13
|
-
```bash
|
|
14
|
-
npm install @amogads/ui
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
### 2. Import Theme & Styles
|
|
18
|
-
In your global stylesheet (`app/globals.css` or `src/styles/globals.css`):
|
|
19
|
-
```css
|
|
20
|
-
@import "tailwindcss";
|
|
21
|
-
@import "@amogads/ui/theme.css";
|
|
22
|
-
|
|
23
|
-
/* Tell Tailwind CSS v4 to scan compiled package classes */
|
|
24
|
-
@source "../node_modules/@amogads/ui/dist";
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
> 📖 **Full Developer Integration Guide**: For complete setup, dark mode, component examples, and templates, see [HOW-TO-USE.md](HOW-TO-USE.md).
|
|
28
|
-
|
|
29
|
-
### 3. Consume Components in Code
|
|
30
|
-
```tsx
|
|
31
|
-
import {
|
|
32
|
-
Button,
|
|
33
|
-
PageHeader,
|
|
34
|
-
DataTable,
|
|
35
|
-
StatusBadge,
|
|
36
|
-
ListTemplate
|
|
37
|
-
} from '@amogads/ui'
|
|
38
|
-
|
|
39
|
-
export default function UsersPage() {
|
|
40
|
-
return (
|
|
41
|
-
<ListTemplate
|
|
42
|
-
title="User Management"
|
|
43
|
-
description="Manage system users and their permissions."
|
|
44
|
-
actions={<Button>Invite User</Button>}
|
|
45
|
-
>
|
|
46
|
-
<StatusBadge status="success" dot pulse>
|
|
47
|
-
Active
|
|
48
|
-
</StatusBadge>
|
|
49
|
-
</ListTemplate>
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 🏛 Architecture & Public Exports
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
src/
|
|
60
|
-
└── design-system/
|
|
61
|
-
├── tokens/ # Semantic OKLCH tokens, themes, radius, animations
|
|
62
|
-
├── components/
|
|
63
|
-
│ ├── ui/ # 57 Radix-based atomic primitives
|
|
64
|
-
│ └── business/ # Multi-app reusable composite patterns
|
|
65
|
-
├── templates/ # 6 standard architectural page blueprints
|
|
66
|
-
└── index.ts # Central public barrel export
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Export Classification Matrix
|
|
70
|
-
|
|
71
|
-
| Layer | Subpath / Export | Examples |
|
|
72
|
-
|---|---|---|
|
|
73
|
-
| **Tokens** | `@amogads/ui/tokens`<br/>`@amogads/ui/theme.css` | `SEMANTIC_TOKENS`, `CHART_TOKENS`, `SIDEBAR_TOKENS`, CSS custom properties |
|
|
74
|
-
| **Primitives** | `@amogads/ui` | `Button`, `Input`, `Card`, `Table`, `Tabs`, `Dialog`, `Sheet`, `Drawer`, `Select`, `Checkbox`, `RadioGroup`, `Slider`, `Switch`, `Badge`, `Avatar`, `Breadcrumb`, `DropdownMenu`, `Popover`, `Tooltip`, `Command`, `ContextMenu`, `Pagination`, `Progress`, `ScrollArea`, `Skeleton`, `Sonner`, `Toaster`, `Spinner`, `Textarea`, `Toggle`, `Kbd`, `Label`, `Empty`, `Field`, `Form`, `InputGroup`, `InputOTP` |
|
|
75
|
-
| **Business Components** | `@amogads/ui` | `PageHeader`, `DataTable`, `StatusBadge`, `FilterBar`, `FormSection`, `MetricCard`, `ConfirmDialog`, `PasswordInput`, `SignOutDialog`, `ThemeSwitch`, `ThemeSelector`, `SelectDropdown`, `LongText`, `Search`, `Stats01`, `DatePicker`, `QrCodeDisplay` |
|
|
76
|
-
| **Chat Components** | `@amogads/ui` | `
|
|
77
|
-
| **Page Templates** | `@amogads/ui` | `ListTemplate`, `DetailTemplate`, `FormTemplate`, `WizardTemplate`, `DashboardTemplate`, `WorkspaceTemplate` |
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## 🛠 Local Development & Scripts
|
|
82
|
-
|
|
83
|
-
### 1. Install Dependencies
|
|
84
|
-
```bash
|
|
85
|
-
npm install
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### 2. Run Interactive Component Gallery
|
|
89
|
-
```bash
|
|
90
|
-
npm run dev
|
|
91
|
-
```
|
|
92
|
-
Open [http://localhost:3000](http://localhost:3000) to view the live component catalog and responsive viewports.
|
|
93
|
-
|
|
94
|
-
### 3. Build Distribution Package (`@amogads/ui`)
|
|
95
|
-
```bash
|
|
96
|
-
npm run build:package
|
|
97
|
-
```
|
|
98
|
-
Generates clean ESM (`dist/index.mjs`), CommonJS (`dist/index.js`), TypeScript declarations (`dist/index.d.ts`), and styles (`dist/theme.css`).
|
|
99
|
-
|
|
100
|
-
### 4. Build Next.js Documentation App
|
|
101
|
-
```bash
|
|
102
|
-
npm run build
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### 5. Typecheck & Lint
|
|
106
|
-
```bash
|
|
107
|
-
npm run typecheck
|
|
108
|
-
npm run lint
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### 6. Publish to NPM
|
|
112
|
-
```bash
|
|
113
|
-
npm publish --access public
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## 🛡 Repository Governance & CI/CD
|
|
119
|
-
|
|
120
|
-
### 1. Branch Protection & PRs
|
|
121
|
-
* Direct pushes to `main` are restricted.
|
|
122
|
-
* All changes must go through Pull Requests with minimum **1 Code Owner approval**.
|
|
123
|
-
* Required status check: `Lint, Typecheck & Build`.
|
|
124
|
-
|
|
125
|
-
### 2. Code Ownership ([.github/CODEOWNERS](.github/CODEOWNERS))
|
|
126
|
-
* `/src/design-system/tokens/` & `/ux/` → `@amoga-design-leads`
|
|
127
|
-
* `/src/design-system/components/ui/` → `@amoga-ui-engineers`
|
|
128
|
-
* `/src/design-system/components/business/` & `/templates/` → `@amoga-core-devs`
|
|
129
|
-
* `/package.json`, `tsup.config.ts`, `/.github/` → `@amoga-maintainers`
|
|
130
|
-
|
|
131
|
-
### 3. CI Pipeline ([.github/workflows/ci.yml](.github/workflows/ci.yml))
|
|
132
|
-
Triggered on every PR to `main`:
|
|
133
|
-
1. `npm ci` (Dependency installation)
|
|
134
|
-
2. `npm run lint` (ESLint validation)
|
|
135
|
-
3. `npx tsc --noEmit` (TypeScript compilation check)
|
|
136
|
-
4. `npm run build:package` (Package bundle validation)
|
|
137
|
-
5. `npm run build` (Next.js production build)
|
|
138
|
-
6. Non-blocking design token integrity check
|
|
139
|
-
|
|
140
|
-
### 4. Release Pipeline ([.github/workflows/release.yml](.github/workflows/release.yml))
|
|
141
|
-
Triggered via GitHub Actions Workflow Dispatch:
|
|
142
|
-
1. Select release type (`patch`, `minor`, `major`).
|
|
143
|
-
2. Pipeline validates codebase and executes `npm run build:package`.
|
|
144
|
-
3. Bumps version in `package.json` according to semantic versioning.
|
|
145
|
-
4. Generates Git release tag (e.g. `v1.0.0`) and GitHub Release notes.
|
|
146
|
-
5. Publishes `@amogads/ui` to NPM Registry.
|
|
147
|
-
6. Automatically triggers cross-repository upgrade PRs across registered consumer apps.
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## 🔄 Synchronization & Consuming App Workflow (`amogads` ↔ `amoganextapp`)
|
|
152
|
-
|
|
153
|
-
`amogads` is the central design system source of truth published to NPM as **`@amogads/ui`**. When you make changes to components, tokens, or templates in `amogads`, follow this standard manual branching workflow to synchronize and adopt changes into your consumer application (e.g. `amoganextapp`).
|
|
154
|
-
|
|
155
|
-
```
|
|
156
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
157
|
-
│ Step 1: Update AmogaDS (Design System) │
|
|
158
|
-
│ - Edit components in amogads/src/design-system/... │
|
|
159
|
-
│ - Run tests / build: npm run build:package │
|
|
160
|
-
│ - Bump version & publish to NPM: npm publish │
|
|
161
|
-
└──────────────────────────────┬──────────────────────────────┘
|
|
162
|
-
│
|
|
163
|
-
▼
|
|
164
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
165
|
-
│ Step 2: Create Branch on Consumer App (amoganextapp) │
|
|
166
|
-
│ - git checkout -b chore/update-amogads-vX.Y.Z │
|
|
167
|
-
│ - npm install @amogads/ui@latest │
|
|
168
|
-
│ - Verify app UI & build: npm run build │
|
|
169
|
-
└──────────────────────────────┬──────────────────────────────┘
|
|
170
|
-
│
|
|
171
|
-
▼
|
|
172
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
173
|
-
│ Step 3: Merge Branch with Main │
|
|
174
|
-
│ - Commit & merge branch into amoganextapp/main │
|
|
175
|
-
│ - Push origin main │
|
|
176
|
-
└─────────────────────────────────────────────────────────────┘
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
### 📖 Step-by-Step Synchronization Example
|
|
182
|
-
|
|
183
|
-
#### Scenario: Adding a new prop or style tweak to `Button` in `amogads` and adopting it in `amoganextapp`.
|
|
184
|
-
|
|
185
|
-
#### Step 1: Make Changes and Publish in `amogads`
|
|
186
|
-
Navigate to the `amogads` directory:
|
|
187
|
-
```bash
|
|
188
|
-
cd amogads
|
|
189
|
-
|
|
190
|
-
# 1. Edit component (e.g. src/design-system/components/ui/button.tsx)
|
|
191
|
-
# 2. Build the package distribution
|
|
192
|
-
npm run build:package
|
|
193
|
-
|
|
194
|
-
# 3. Bump version (patch / minor / major)
|
|
195
|
-
npm version patch
|
|
196
|
-
|
|
197
|
-
# 4. Publish the updated package to NPM
|
|
198
|
-
npm publish --access public
|
|
199
|
-
```
|
|
200
|
-
*(Example: `@amogads/ui` version is now `1.0.3` on NPM).*
|
|
201
|
-
|
|
202
|
-
#### Step 2: Create a Branch in `amoganextapp` & Update Dependency
|
|
203
|
-
Navigate back to your main application root (`amoganextapp`):
|
|
204
|
-
```bash
|
|
205
|
-
cd .. # (in amoganextapp root)
|
|
206
|
-
|
|
207
|
-
# 1. Create a dedicated branch for the design system update
|
|
208
|
-
git checkout -b chore/update-amogads-v1.0.3
|
|
209
|
-
|
|
210
|
-
# 2. Install the newly published version from NPM
|
|
211
|
-
npm install @amogads/ui@latest
|
|
212
|
-
|
|
213
|
-
# 3. Test and verify locally
|
|
214
|
-
npm run dev
|
|
215
|
-
npm run build
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
#### Step 3: Commit and Merge into `main`
|
|
219
|
-
```bash
|
|
220
|
-
# 1. Stage and commit updated package.json & package-lock.json
|
|
221
|
-
git add package.json package-lock.json
|
|
222
|
-
git commit -m "chore(deps): update @amogads/ui to v1.0.3"
|
|
223
|
-
|
|
224
|
-
# 2. Switch to main and merge your branch
|
|
225
|
-
git checkout main
|
|
226
|
-
git merge chore/update-amogads-v1.0.3
|
|
227
|
-
|
|
228
|
-
# 3. Push to GitHub
|
|
229
|
-
git push origin main
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## 🤖 Cross-Repository Registry & Automation Controls
|
|
235
|
-
|
|
236
|
-
AmogaDS maintains a consumer registry in [`consumers-registry.json`](consumers-registry.json) to track connected applications:
|
|
237
|
-
|
|
238
|
-
```json
|
|
239
|
-
{
|
|
240
|
-
"id": "amoganextapp",
|
|
241
|
-
"name": "Amoga Next App",
|
|
242
|
-
"repository": "MohammadAmannn/amoganextapp",
|
|
243
|
-
"defaultBranch": "main",
|
|
244
|
-
"packagePath": "package.json",
|
|
245
|
-
"currentVersion": "1.0.2",
|
|
246
|
-
"targetVersion": "1.0.2",
|
|
247
|
-
"updateStatus": "up-to-date",
|
|
248
|
-
"automationStatus": "disabled",
|
|
249
|
-
"team": "@MohammadAmannn"
|
|
250
|
-
}
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
### Automation Modes:
|
|
254
|
-
* `"automationStatus": "disabled"` *(Default)*: Automated GitHub Action PR bot is disabled. Developers manage their own branch creation, local verification, and merge into `main`.
|
|
255
|
-
* `"automationStatus": "enabled"`: GitHub Actions will automatically clone the consumer, create a branch, and submit a PR via GitHub REST API whenever a release occurs.
|
|
256
|
-
|
|
257
|
-
### Check Status Across Consumers:
|
|
258
|
-
Run from the `amogads/` directory:
|
|
259
|
-
```bash
|
|
260
|
-
npm run consumers:status
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
### 5. Rollback & Emergency Recovery
|
|
266
|
-
|
|
267
|
-
If an issue is discovered after merging an upgrade:
|
|
268
|
-
|
|
269
|
-
```bash
|
|
270
|
-
# 1. Revert to previous stable version
|
|
271
|
-
npm install @amogads/ui@<PREVIOUS_VERSION>
|
|
272
|
-
|
|
273
|
-
# 2. Re-build and verify
|
|
274
|
-
npm run build
|
|
275
|
-
|
|
276
|
-
# 3. Commit and push
|
|
277
|
-
git commit -am "fix: rollback @amogads/ui to v<PREVIOUS_VERSION>"
|
|
278
|
-
git push origin main
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
---
|
|
282
|
-
|
|
283
|
-
## 📚 UX & Architectural Documentation
|
|
284
|
-
|
|
285
|
-
Comprehensive documentation is available in the repository:
|
|
286
|
-
|
|
287
|
-
- [Developer How-To-Use Guide](HOW-TO-USE.md)
|
|
288
|
-
- [Cross-Repository Upgrade Automation Guide](ux/UPGRADE-AUTOMATION.md)
|
|
289
|
-
- [Design System Architecture & Boundaries](ux/DESIGN-SYSTEM.md)
|
|
290
|
-
- [UX Guidelines & Interaction Foundations](ux/UX-GUIDELINES.md)
|
|
291
|
-
- [Component Guidelines & Taxonomy](ux/COMPONENT-GUIDELINES.md)
|
|
292
|
-
- [Page Guidelines & Template Specifications](ux/PAGE-GUIDELINES.md)
|
|
293
|
-
- [AI Development Guidelines](ux/AI-DEVELOPMENT-GUIDELINES.md)
|
|
294
|
-
- [Design System Rules](ux/design-rules.md)
|
|
295
|
-
- [Token Specifications](ux/token-specifications.md)
|
|
1
|
+
# AmogaDS — Central Design System (`@amogads/ui`)
|
|
2
|
+
|
|
3
|
+
Welcome to the **Amoga Design System (AmogaDS)** repository. This repository serves two unified purposes:
|
|
4
|
+
1. **Source of Truth for `@amogads/ui`**: A centralized, versioned design system package containing design tokens, atomic UI primitives, reusable business patterns, and page templates published directly to the public [NPM Registry](https://www.npmjs.com/package/@amogads/ui).
|
|
5
|
+
2. **Interactive Component Gallery**: A live Next.js documentation and preview application for exploring components, states, responsive viewports, and theme variants.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📦 Consuming `@amogads/ui` in Next.js Applications
|
|
10
|
+
|
|
11
|
+
### 1. Install Package
|
|
12
|
+
Install directly from NPM into any Next.js (or React) project:
|
|
13
|
+
```bash
|
|
14
|
+
npm install @amogads/ui
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 2. Import Theme & Styles
|
|
18
|
+
In your global stylesheet (`app/globals.css` or `src/styles/globals.css`):
|
|
19
|
+
```css
|
|
20
|
+
@import "tailwindcss";
|
|
21
|
+
@import "@amogads/ui/theme.css";
|
|
22
|
+
|
|
23
|
+
/* Tell Tailwind CSS v4 to scan compiled package classes */
|
|
24
|
+
@source "../node_modules/@amogads/ui/dist";
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
> 📖 **Full Developer Integration Guide**: For complete setup, dark mode, component examples, and templates, see [HOW-TO-USE.md](HOW-TO-USE.md).
|
|
28
|
+
|
|
29
|
+
### 3. Consume Components in Code
|
|
30
|
+
```tsx
|
|
31
|
+
import {
|
|
32
|
+
Button,
|
|
33
|
+
PageHeader,
|
|
34
|
+
DataTable,
|
|
35
|
+
StatusBadge,
|
|
36
|
+
ListTemplate
|
|
37
|
+
} from '@amogads/ui'
|
|
38
|
+
|
|
39
|
+
export default function UsersPage() {
|
|
40
|
+
return (
|
|
41
|
+
<ListTemplate
|
|
42
|
+
title="User Management"
|
|
43
|
+
description="Manage system users and their permissions."
|
|
44
|
+
actions={<Button>Invite User</Button>}
|
|
45
|
+
>
|
|
46
|
+
<StatusBadge status="success" dot pulse>
|
|
47
|
+
Active
|
|
48
|
+
</StatusBadge>
|
|
49
|
+
</ListTemplate>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 🏛 Architecture & Public Exports
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
src/
|
|
60
|
+
└── design-system/
|
|
61
|
+
├── tokens/ # Semantic OKLCH tokens, themes, radius, animations
|
|
62
|
+
├── components/
|
|
63
|
+
│ ├── ui/ # 57 Radix-based atomic primitives
|
|
64
|
+
│ └── business/ # Multi-app reusable composite patterns
|
|
65
|
+
├── templates/ # 6 standard architectural page blueprints
|
|
66
|
+
└── index.ts # Central public barrel export
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Export Classification Matrix
|
|
70
|
+
|
|
71
|
+
| Layer | Subpath / Export | Examples |
|
|
72
|
+
|---|---|---|
|
|
73
|
+
| **Tokens** | `@amogads/ui/tokens`<br/>`@amogads/ui/theme.css` | `SEMANTIC_TOKENS`, `CHART_TOKENS`, `SIDEBAR_TOKENS`, CSS custom properties |
|
|
74
|
+
| **Primitives** | `@amogads/ui` | `Button`, `Input`, `Card`, `Table`, `Tabs`, `Dialog`, `Sheet`, `Drawer`, `Select`, `Checkbox`, `RadioGroup`, `Slider`, `Switch`, `Badge`, `Avatar`, `Breadcrumb`, `DropdownMenu`, `Popover`, `Tooltip`, `Command`, `ContextMenu`, `Pagination`, `Progress`, `ScrollArea`, `Skeleton`, `Sonner`, `Toaster`, `Spinner`, `Textarea`, `Toggle`, `Kbd`, `Label`, `Empty`, `Field`, `Form`, `InputGroup`, `InputOTP` |
|
|
75
|
+
| **Business Components** | `@amogads/ui` | `PageHeader`, `DataTable`, `StatusBadge`, `FilterBar`, `FormSection`, `MetricCard`, `ConfirmDialog`, `PasswordInput`, `SignOutDialog`, `ThemeSwitch`, `ThemeSelector`, `SelectDropdown`, `LongText`, `Search`, `Stats01`, `DatePicker`, `QrCodeDisplay` |
|
|
76
|
+
| **Chat Components** | `@amogads/ui` | `ChatSidebar`, `ChatCardItem`, `ChatMessageList`, `ChatHeader`, `ChatBubble`, `ChatInput`, `TypingIndicator`, `ChatEmptyState`, `ContactManager`, `GroupManager` |
|
|
77
|
+
| **Page Templates** | `@amogads/ui` | `ListTemplate`, `DetailTemplate`, `FormTemplate`, `WizardTemplate`, `DashboardTemplate`, `WorkspaceTemplate` |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 🛠 Local Development & Scripts
|
|
82
|
+
|
|
83
|
+
### 1. Install Dependencies
|
|
84
|
+
```bash
|
|
85
|
+
npm install
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 2. Run Interactive Component Gallery
|
|
89
|
+
```bash
|
|
90
|
+
npm run dev
|
|
91
|
+
```
|
|
92
|
+
Open [http://localhost:3000](http://localhost:3000) to view the live component catalog and responsive viewports.
|
|
93
|
+
|
|
94
|
+
### 3. Build Distribution Package (`@amogads/ui`)
|
|
95
|
+
```bash
|
|
96
|
+
npm run build:package
|
|
97
|
+
```
|
|
98
|
+
Generates clean ESM (`dist/index.mjs`), CommonJS (`dist/index.js`), TypeScript declarations (`dist/index.d.ts`), and styles (`dist/theme.css`).
|
|
99
|
+
|
|
100
|
+
### 4. Build Next.js Documentation App
|
|
101
|
+
```bash
|
|
102
|
+
npm run build
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 5. Typecheck & Lint
|
|
106
|
+
```bash
|
|
107
|
+
npm run typecheck
|
|
108
|
+
npm run lint
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 6. Publish to NPM
|
|
112
|
+
```bash
|
|
113
|
+
npm publish --access public
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 🛡 Repository Governance & CI/CD
|
|
119
|
+
|
|
120
|
+
### 1. Branch Protection & PRs
|
|
121
|
+
* Direct pushes to `main` are restricted.
|
|
122
|
+
* All changes must go through Pull Requests with minimum **1 Code Owner approval**.
|
|
123
|
+
* Required status check: `Lint, Typecheck & Build`.
|
|
124
|
+
|
|
125
|
+
### 2. Code Ownership ([.github/CODEOWNERS](.github/CODEOWNERS))
|
|
126
|
+
* `/src/design-system/tokens/` & `/ux/` → `@amoga-design-leads`
|
|
127
|
+
* `/src/design-system/components/ui/` → `@amoga-ui-engineers`
|
|
128
|
+
* `/src/design-system/components/business/` & `/templates/` → `@amoga-core-devs`
|
|
129
|
+
* `/package.json`, `tsup.config.ts`, `/.github/` → `@amoga-maintainers`
|
|
130
|
+
|
|
131
|
+
### 3. CI Pipeline ([.github/workflows/ci.yml](.github/workflows/ci.yml))
|
|
132
|
+
Triggered on every PR to `main`:
|
|
133
|
+
1. `npm ci` (Dependency installation)
|
|
134
|
+
2. `npm run lint` (ESLint validation)
|
|
135
|
+
3. `npx tsc --noEmit` (TypeScript compilation check)
|
|
136
|
+
4. `npm run build:package` (Package bundle validation)
|
|
137
|
+
5. `npm run build` (Next.js production build)
|
|
138
|
+
6. Non-blocking design token integrity check
|
|
139
|
+
|
|
140
|
+
### 4. Release Pipeline ([.github/workflows/release.yml](.github/workflows/release.yml))
|
|
141
|
+
Triggered via GitHub Actions Workflow Dispatch:
|
|
142
|
+
1. Select release type (`patch`, `minor`, `major`).
|
|
143
|
+
2. Pipeline validates codebase and executes `npm run build:package`.
|
|
144
|
+
3. Bumps version in `package.json` according to semantic versioning.
|
|
145
|
+
4. Generates Git release tag (e.g. `v1.0.0`) and GitHub Release notes.
|
|
146
|
+
5. Publishes `@amogads/ui` to NPM Registry.
|
|
147
|
+
6. Automatically triggers cross-repository upgrade PRs across registered consumer apps.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 🔄 Synchronization & Consuming App Workflow (`amogads` ↔ `amoganextapp`)
|
|
152
|
+
|
|
153
|
+
`amogads` is the central design system source of truth published to NPM as **`@amogads/ui`**. When you make changes to components, tokens, or templates in `amogads`, follow this standard manual branching workflow to synchronize and adopt changes into your consumer application (e.g. `amoganextapp`).
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
157
|
+
│ Step 1: Update AmogaDS (Design System) │
|
|
158
|
+
│ - Edit components in amogads/src/design-system/... │
|
|
159
|
+
│ - Run tests / build: npm run build:package │
|
|
160
|
+
│ - Bump version & publish to NPM: npm publish │
|
|
161
|
+
└──────────────────────────────┬──────────────────────────────┘
|
|
162
|
+
│
|
|
163
|
+
▼
|
|
164
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
165
|
+
│ Step 2: Create Branch on Consumer App (amoganextapp) │
|
|
166
|
+
│ - git checkout -b chore/update-amogads-vX.Y.Z │
|
|
167
|
+
│ - npm install @amogads/ui@latest │
|
|
168
|
+
│ - Verify app UI & build: npm run build │
|
|
169
|
+
└──────────────────────────────┬──────────────────────────────┘
|
|
170
|
+
│
|
|
171
|
+
▼
|
|
172
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
173
|
+
│ Step 3: Merge Branch with Main │
|
|
174
|
+
│ - Commit & merge branch into amoganextapp/main │
|
|
175
|
+
│ - Push origin main │
|
|
176
|
+
└─────────────────────────────────────────────────────────────┘
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 📖 Step-by-Step Synchronization Example
|
|
182
|
+
|
|
183
|
+
#### Scenario: Adding a new prop or style tweak to `Button` in `amogads` and adopting it in `amoganextapp`.
|
|
184
|
+
|
|
185
|
+
#### Step 1: Make Changes and Publish in `amogads`
|
|
186
|
+
Navigate to the `amogads` directory:
|
|
187
|
+
```bash
|
|
188
|
+
cd amogads
|
|
189
|
+
|
|
190
|
+
# 1. Edit component (e.g. src/design-system/components/ui/button.tsx)
|
|
191
|
+
# 2. Build the package distribution
|
|
192
|
+
npm run build:package
|
|
193
|
+
|
|
194
|
+
# 3. Bump version (patch / minor / major)
|
|
195
|
+
npm version patch
|
|
196
|
+
|
|
197
|
+
# 4. Publish the updated package to NPM
|
|
198
|
+
npm publish --access public
|
|
199
|
+
```
|
|
200
|
+
*(Example: `@amogads/ui` version is now `1.0.3` on NPM).*
|
|
201
|
+
|
|
202
|
+
#### Step 2: Create a Branch in `amoganextapp` & Update Dependency
|
|
203
|
+
Navigate back to your main application root (`amoganextapp`):
|
|
204
|
+
```bash
|
|
205
|
+
cd .. # (in amoganextapp root)
|
|
206
|
+
|
|
207
|
+
# 1. Create a dedicated branch for the design system update
|
|
208
|
+
git checkout -b chore/update-amogads-v1.0.3
|
|
209
|
+
|
|
210
|
+
# 2. Install the newly published version from NPM
|
|
211
|
+
npm install @amogads/ui@latest
|
|
212
|
+
|
|
213
|
+
# 3. Test and verify locally
|
|
214
|
+
npm run dev
|
|
215
|
+
npm run build
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
#### Step 3: Commit and Merge into `main`
|
|
219
|
+
```bash
|
|
220
|
+
# 1. Stage and commit updated package.json & package-lock.json
|
|
221
|
+
git add package.json package-lock.json
|
|
222
|
+
git commit -m "chore(deps): update @amogads/ui to v1.0.3"
|
|
223
|
+
|
|
224
|
+
# 2. Switch to main and merge your branch
|
|
225
|
+
git checkout main
|
|
226
|
+
git merge chore/update-amogads-v1.0.3
|
|
227
|
+
|
|
228
|
+
# 3. Push to GitHub
|
|
229
|
+
git push origin main
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 🤖 Cross-Repository Registry & Automation Controls
|
|
235
|
+
|
|
236
|
+
AmogaDS maintains a consumer registry in [`consumers-registry.json`](consumers-registry.json) to track connected applications:
|
|
237
|
+
|
|
238
|
+
```json
|
|
239
|
+
{
|
|
240
|
+
"id": "amoganextapp",
|
|
241
|
+
"name": "Amoga Next App",
|
|
242
|
+
"repository": "MohammadAmannn/amoganextapp",
|
|
243
|
+
"defaultBranch": "main",
|
|
244
|
+
"packagePath": "package.json",
|
|
245
|
+
"currentVersion": "1.0.2",
|
|
246
|
+
"targetVersion": "1.0.2",
|
|
247
|
+
"updateStatus": "up-to-date",
|
|
248
|
+
"automationStatus": "disabled",
|
|
249
|
+
"team": "@MohammadAmannn"
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Automation Modes:
|
|
254
|
+
* `"automationStatus": "disabled"` *(Default)*: Automated GitHub Action PR bot is disabled. Developers manage their own branch creation, local verification, and merge into `main`.
|
|
255
|
+
* `"automationStatus": "enabled"`: GitHub Actions will automatically clone the consumer, create a branch, and submit a PR via GitHub REST API whenever a release occurs.
|
|
256
|
+
|
|
257
|
+
### Check Status Across Consumers:
|
|
258
|
+
Run from the `amogads/` directory:
|
|
259
|
+
```bash
|
|
260
|
+
npm run consumers:status
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### 5. Rollback & Emergency Recovery
|
|
266
|
+
|
|
267
|
+
If an issue is discovered after merging an upgrade:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
# 1. Revert to previous stable version
|
|
271
|
+
npm install @amogads/ui@<PREVIOUS_VERSION>
|
|
272
|
+
|
|
273
|
+
# 2. Re-build and verify
|
|
274
|
+
npm run build
|
|
275
|
+
|
|
276
|
+
# 3. Commit and push
|
|
277
|
+
git commit -am "fix: rollback @amogads/ui to v<PREVIOUS_VERSION>"
|
|
278
|
+
git push origin main
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 📚 UX & Architectural Documentation
|
|
284
|
+
|
|
285
|
+
Comprehensive documentation is available in the repository:
|
|
286
|
+
|
|
287
|
+
- [Developer How-To-Use Guide](HOW-TO-USE.md)
|
|
288
|
+
- [Cross-Repository Upgrade Automation Guide](ux/UPGRADE-AUTOMATION.md)
|
|
289
|
+
- [Design System Architecture & Boundaries](ux/DESIGN-SYSTEM.md)
|
|
290
|
+
- [UX Guidelines & Interaction Foundations](ux/UX-GUIDELINES.md)
|
|
291
|
+
- [Component Guidelines & Taxonomy](ux/COMPONENT-GUIDELINES.md)
|
|
292
|
+
- [Page Guidelines & Template Specifications](ux/PAGE-GUIDELINES.md)
|
|
293
|
+
- [AI Development Guidelines](ux/AI-DEVELOPMENT-GUIDELINES.md)
|
|
294
|
+
- [Design System Rules](ux/design-rules.md)
|
|
295
|
+
- [Token Specifications](ux/token-specifications.md)
|