@frontfamily/cli 0.1.1 → 0.1.2
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 +118 -37
- package/package.json +2 -6
package/README.md
CHANGED
|
@@ -1,60 +1,141 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>@frontfamily/cli</h1>
|
|
3
|
+
<p>Eject production-ready UI components into any project.<br/>72 templates · 9 frameworks · 8 patterns · works offline.</p>
|
|
4
|
+
<p>
|
|
5
|
+
<a href="https://www.npmjs.com/package/@frontfamily/cli"><img src="https://img.shields.io/npm/v/@frontfamily/cli.svg?style=flat-square&color=3B82F6" alt="npm version"></a>
|
|
6
|
+
<a href="https://www.npmjs.com/package/@frontfamily/cli"><img src="https://img.shields.io/npm/dm/@frontfamily/cli.svg?style=flat-square&color=4ADE80" alt="downloads"></a>
|
|
7
|
+
<img src="https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square" alt="license">
|
|
8
|
+
</p>
|
|
9
|
+
</div>
|
|
2
10
|
|
|
3
|
-
|
|
11
|
+
---
|
|
4
12
|
|
|
5
|
-
##
|
|
13
|
+
## Why
|
|
14
|
+
|
|
15
|
+
You need an auth form in Quasar. Or a data table in Chakra. Or a settings panel in Angular Material. Instead of writing it from scratch, eject a tested, production-ready template in one command.
|
|
16
|
+
|
|
17
|
+
All templates are **bundled inside the package** — no network requests, no API keys, no accounts. Works offline, works in CI.
|
|
18
|
+
|
|
19
|
+
## Install
|
|
6
20
|
|
|
7
21
|
```bash
|
|
8
|
-
#
|
|
22
|
+
# Use directly (no install needed)
|
|
9
23
|
npx @frontfamily/cli eject
|
|
10
24
|
|
|
11
|
-
#
|
|
12
|
-
|
|
25
|
+
# Or install globally
|
|
26
|
+
npm i -g @frontfamily/cli
|
|
27
|
+
frontfamily eject
|
|
13
28
|
```
|
|
14
29
|
|
|
15
|
-
|
|
30
|
+
## Usage
|
|
16
31
|
|
|
17
|
-
|
|
32
|
+
### Interactive mode
|
|
18
33
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
```bash
|
|
35
|
+
$ npx @frontfamily/cli eject
|
|
36
|
+
|
|
37
|
+
┌ FrontFamily Eject
|
|
38
|
+
│
|
|
39
|
+
◆ Select the UI Pattern:
|
|
40
|
+
│ ○ Data Table
|
|
41
|
+
│ ○ Auth Form ← you pick
|
|
42
|
+
│ ○ Card Feed
|
|
43
|
+
│ ...
|
|
44
|
+
│
|
|
45
|
+
◆ Select the framework:
|
|
46
|
+
│ ○ Vue 3 + Quasar ← you pick
|
|
47
|
+
│ ○ React + Chakra UI
|
|
48
|
+
│ ○ React + Material UI
|
|
49
|
+
│ ...
|
|
50
|
+
│
|
|
51
|
+
◇ Ejected successfully!
|
|
52
|
+
│
|
|
53
|
+
└ ✨ Your component is ready at ./components/QuasarAuthForm.vue
|
|
54
|
+
```
|
|
29
55
|
|
|
30
|
-
|
|
56
|
+
### Direct mode
|
|
31
57
|
|
|
32
|
-
|
|
58
|
+
```bash
|
|
59
|
+
# Skip prompts — specify pattern and framework directly
|
|
60
|
+
npx @frontfamily/cli eject auth-form -f vue-quasar
|
|
61
|
+
npx @frontfamily/cli eject data-table -f react-mui
|
|
62
|
+
npx @frontfamily/cli eject settings-panel -f angular-material
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Patterns
|
|
66
|
+
|
|
67
|
+
| ID | Name | What you get |
|
|
33
68
|
|---|---|---|
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
|
|
69
|
+
| `data-table` | Data Table | Sortable, paginated table with status badges and a11y scores |
|
|
70
|
+
| `auth-form` | Auth Form | Login/signup with validation, password visibility toggle, error states |
|
|
71
|
+
| `card-feed` | Card Feed | Responsive grid of profile cards with avatars, badges, hover effects |
|
|
72
|
+
| `dashboard-stats` | Dashboard Stats | 4 KPI cards with progress bars, trend indicators, department breakdown |
|
|
73
|
+
| `modal-dialog` | Modal Dialog | Confirmation, form, and alert dialogs with overlay and keyboard dismiss |
|
|
74
|
+
| `nav-bar` | Navigation Bar | Top nav with links, dropdown menu, search input, mobile hamburger drawer |
|
|
75
|
+
| `notification-center` | Notifications | Toast stack with auto-dismiss, progress bars, and notification history |
|
|
76
|
+
| `settings-panel` | Settings Panel | Toggles, sliders, radio groups, selects with save/reset actions |
|
|
77
|
+
|
|
78
|
+
## Frameworks
|
|
79
|
+
|
|
80
|
+
| Flag | ID | Framework | Output |
|
|
81
|
+
|---|---|---|---|
|
|
82
|
+
| ⚛️ | `react-chakra` | Chakra UI | `.tsx` |
|
|
83
|
+
| ⚛️ | `react-mui` | Material UI (MUI) | `.tsx` |
|
|
84
|
+
| ⚛️ | `react-antd` | Ant Design | `.tsx` |
|
|
85
|
+
| ⚛️ | `react-eui` | Elastic EUI | `.tsx` |
|
|
86
|
+
| ⚛️ | `react-mantine` | Mantine | `.tsx` |
|
|
87
|
+
| ⚛️ | `react-bootstrap` | Bootstrap | `.tsx` |
|
|
88
|
+
| ⚛️ | `react-tailwind` | Tailwind / Headless UI | `.tsx` |
|
|
89
|
+
| 💚 | `vue-quasar` | Quasar (Vue 3) | `.vue` |
|
|
90
|
+
| 🔺 | `angular-material` | Angular Material | `.ts` |
|
|
43
91
|
|
|
44
|
-
|
|
92
|
+
**8 patterns × 9 frameworks = 72 templates**
|
|
45
93
|
|
|
46
|
-
|
|
94
|
+
## What you get
|
|
47
95
|
|
|
48
|
-
|
|
96
|
+
Each ejected file is a **single, self-contained component** with:
|
|
97
|
+
|
|
98
|
+
- Framework-specific imports (`@chakra-ui/react`, `quasar`, `@angular/material`, etc.)
|
|
99
|
+
- Proper TypeScript types
|
|
100
|
+
- Theme support (dark/light)
|
|
101
|
+
- Density support (compact/comfortable)
|
|
102
|
+
- Loading and error states
|
|
103
|
+
- Responsive layout
|
|
104
|
+
|
|
105
|
+
The file is yours — modify it however you want. No dependency on `@frontfamily/cli` at runtime.
|
|
106
|
+
|
|
107
|
+
## FAQ
|
|
108
|
+
|
|
109
|
+
**Does it need internet?**
|
|
110
|
+
No. All 72 templates are bundled in the npm package. Fully offline.
|
|
111
|
+
|
|
112
|
+
**Does it touch my existing files?**
|
|
113
|
+
No. It only creates new files in `./components/`. Never reads, modifies, or deletes anything.
|
|
114
|
+
|
|
115
|
+
**What if `./components/` doesn't exist?**
|
|
116
|
+
It creates the directory automatically.
|
|
117
|
+
|
|
118
|
+
**Is this like shadcn/ui?**
|
|
119
|
+
Similar concept — you own the code. The difference: FrontFamily covers 9 frameworks (React, Vue, Angular), not just React + Tailwind.
|
|
120
|
+
|
|
121
|
+
**Can I use the output commercially?**
|
|
122
|
+
Yes. Apache 2.0 license. No restrictions.
|
|
49
123
|
|
|
50
124
|
## Commands
|
|
51
125
|
|
|
52
|
-
```bash
|
|
53
|
-
frontfamily eject # Interactive mode
|
|
54
|
-
frontfamily eject <pattern> # Select framework only
|
|
55
|
-
frontfamily eject <pattern> -f <framework> # Fully non-interactive
|
|
56
|
-
frontfamily --version # Show version
|
|
57
126
|
```
|
|
127
|
+
frontfamily eject Interactive mode
|
|
128
|
+
frontfamily eject <pattern> Prompts for framework only
|
|
129
|
+
frontfamily eject <pattern> -f <framework> No prompts
|
|
130
|
+
frontfamily --version Print version
|
|
131
|
+
frontfamily --help Show help
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Links
|
|
135
|
+
|
|
136
|
+
- [Web Converter](https://frontfamily.com/converter) — convert code between frameworks online
|
|
137
|
+
- [Migration Guides](https://frontfamily.com/guides) — 9 guides with 219 searchable component mappings
|
|
138
|
+
- [CLI Documentation](https://frontfamily.com/docs) — full docs with examples
|
|
58
139
|
|
|
59
140
|
## License
|
|
60
141
|
|
package/package.json
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontfamily/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Eject production-ready UI pattern components across React, Vue, and Angular frameworks",
|
|
5
5
|
"author": "ch-bas",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
|
-
"
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "https://github.com/ch-bas/frontfamily2.0",
|
|
10
|
-
"directory": "packages/cli"
|
|
11
|
-
},
|
|
7
|
+
"homepage": "https://frontfamily.com/docs",
|
|
12
8
|
"keywords": [
|
|
13
9
|
"frontfamily",
|
|
14
10
|
"ui",
|