@deneb-ui/create-template 2.0.0 → 2.0.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 +36 -22
- package/bin/index.js +9 -8
- package/package.json +3 -3
- package/template/package.json +9 -6
- package/template/postcss.config.mjs +8 -0
- package/template/src/app/globals.css +4 -0
- package/template/src/app/page.tsx +26 -5
- package/template/tailwind.config.ts +24 -0
package/README.md
CHANGED
|
@@ -1,36 +1,47 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DENEB
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### The official template initializer for DENEB UI.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> **DENEB UI — Build beautiful interfaces, effortlessly.**
|
|
6
|
+
> The premier visual-first React component ecosystem.
|
|
7
|
+
> Created by **Chamika Gayashan & Induranga Kawishwara**.
|
|
8
|
+
|
|
9
|
+
[](https://github.com/chamikathereal)
|
|
6
10
|
[](https://opensource.org/licenses/MIT)
|
|
7
11
|
|
|
8
12
|
---
|
|
9
13
|
|
|
10
14
|
## Quick Start
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
Scaffold a complete storefront in seconds with a single command:
|
|
13
17
|
|
|
14
18
|
```bash
|
|
15
19
|
# Using npm
|
|
16
|
-
npm create @
|
|
20
|
+
npm create @deneb-ui/template my-store
|
|
17
21
|
|
|
18
22
|
# Or using npx
|
|
19
|
-
npx @
|
|
23
|
+
npx @deneb-ui/create-template my-store
|
|
24
|
+
|
|
25
|
+
# Or using yarn / pnpm
|
|
26
|
+
yarn create @deneb-ui/template my-store
|
|
27
|
+
pnpm create @deneb-ui/template my-store
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If you don't provide a project name, the interactive wizard will prompt you:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
⚡ Welcome to DENEB UI Template Creator!
|
|
20
34
|
|
|
21
|
-
|
|
22
|
-
yarn create @fivora/template my-store
|
|
23
|
-
pnpm create @fivora/template my-store
|
|
35
|
+
? What is your template name? (e.g. my-store):
|
|
24
36
|
```
|
|
25
37
|
|
|
26
38
|
Then start developing:
|
|
27
39
|
|
|
28
40
|
```bash
|
|
29
41
|
cd my-store
|
|
30
|
-
npm
|
|
31
|
-
npm run
|
|
32
|
-
npm run
|
|
33
|
-
npm run validate # Run Fivora preflight compliance checks
|
|
42
|
+
npm run dev # Start Next.js + Tailwind local development
|
|
43
|
+
npm run lab # Launch Visual Editing Lab
|
|
44
|
+
npm run validate # Run contract compliance checks
|
|
34
45
|
npm run zip # Create upload-ready clean ZIP
|
|
35
46
|
```
|
|
36
47
|
|
|
@@ -39,27 +50,30 @@ npm run zip # Create upload-ready clean ZIP
|
|
|
39
50
|
## What is Included?
|
|
40
51
|
|
|
41
52
|
Each generated template comes pre-configured with:
|
|
42
|
-
- ⚡ **Next.js App Router**: Modern React 19 / Next.js with static HTML export support
|
|
43
|
-
- 🎨
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
53
|
+
- ⚡ **Next.js 15 App Router**: Modern React 19 / Next.js with static HTML export support
|
|
54
|
+
- 🎨 **Tailwind CSS**: Pre-configured `tailwind.config.ts`, `postcss.config.mjs`, and Tailwind utility classes
|
|
55
|
+
- 💎 **`@deneb-ui/ui`**: Pre-installed DENEB UI visual-first component ecosystem
|
|
56
|
+
- 🛠️ **`@deneb-ui/cli`**: Developer toolchain (`deneb lab`, `deneb validate`, `deneb zip`, `deneb add`)
|
|
57
|
+
- 📋 **Manifest & Schema**: Pre-configured storefront template contract & visual editing bindings
|
|
58
|
+
- 📦 **`src/data/site-data.json`**: Single source of truth for branding, nav labels, and editable content
|
|
59
|
+
- 📖 **In-App Developer Guide**: Built-in developer guidance right on the homepage (`src/app/page.tsx`)
|
|
47
60
|
|
|
48
61
|
---
|
|
49
62
|
|
|
50
63
|
## Command Options
|
|
51
64
|
|
|
52
65
|
```bash
|
|
53
|
-
npx @
|
|
66
|
+
npx @deneb-ui/create-template <project-name> [options]
|
|
54
67
|
```
|
|
55
68
|
|
|
56
69
|
| Option | Description |
|
|
57
70
|
| :--- | :--- |
|
|
58
|
-
| `<project-name>` | Target directory name (e.g. `my-
|
|
71
|
+
| `<project-name>` | Target directory name (e.g. `my-store`) |
|
|
59
72
|
| `--skip-install` | Do not run `npm install` automatically after scaffolding |
|
|
60
73
|
|
|
61
74
|
---
|
|
62
75
|
|
|
63
|
-
##
|
|
76
|
+
## 👤 Author & Credits
|
|
64
77
|
|
|
65
|
-
|
|
78
|
+
Created and architected by **Chamika Gayashan & Induranga Kawishwara**.
|
|
79
|
+
Part of the **DENEB UI** ecosystem.
|
package/bin/index.js
CHANGED
|
@@ -9,11 +9,11 @@ let targetDirInput = args[0];
|
|
|
9
9
|
|
|
10
10
|
function printBanner() {
|
|
11
11
|
console.log(`
|
|
12
|
-
\x1b[36m
|
|
13
|
-
║
|
|
14
|
-
║
|
|
15
|
-
║
|
|
16
|
-
|
|
12
|
+
\x1b[36m╔═════════════════════════════════════════════════════════════╗
|
|
13
|
+
║ \x1b[1mDENEB TEMPLATE CREATOR\x1b[0m\x1b[36m ║
|
|
14
|
+
║ \x1b[90mScaffold a fast, compliant commerce template\x1b[0m\x1b[36m ║
|
|
15
|
+
║ \x1b[90mCreated by Chamika Gayashan & Induranga Kawishwara\x1b[0m\x1b[36m ║
|
|
16
|
+
╚═════════════════════════════════════════════════════════════╝\x1b[0m
|
|
17
17
|
`);
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -111,7 +111,7 @@ function runScaffolding(targetInput) {
|
|
|
111
111
|
|
|
112
112
|
printBanner();
|
|
113
113
|
|
|
114
|
-
if (targetDirInput) {
|
|
114
|
+
if (targetDirInput && targetDirInput.trim() && !targetDirInput.startsWith('-')) {
|
|
115
115
|
runScaffolding(targetDirInput);
|
|
116
116
|
} else {
|
|
117
117
|
const rl = readline.createInterface({
|
|
@@ -119,9 +119,10 @@ if (targetDirInput) {
|
|
|
119
119
|
output: process.stdout,
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
console.log('⚡ Welcome to DENEB UI Template Creator!\n');
|
|
123
|
+
rl.question(' \x1b[36m?\x1b[0m \x1b[1mWhat is your template name?\x1b[0m \x1b[90m(e.g. my-store)\x1b[0m: ', (answer) => {
|
|
123
124
|
rl.close();
|
|
124
|
-
const name = answer.trim() || 'deneb-
|
|
125
|
+
const name = answer.trim() || 'my-deneb-store';
|
|
125
126
|
runScaffolding(name);
|
|
126
127
|
});
|
|
127
128
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deneb-ui/create-template",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "Scaffold a modern, pre-validated DENEB UI storefront template in seconds. Created by Chamika Gayashan
|
|
3
|
+
"version": "2.0.2",
|
|
4
|
+
"description": "Scaffold a modern, pre-validated DENEB UI storefront template in seconds. Created by Chamika Gayashan & Induranga Kawishwara.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-deneb-template": "bin/index.js",
|
|
7
7
|
"create-deneb": "bin/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"nextjs",
|
|
32
32
|
"react"
|
|
33
33
|
],
|
|
34
|
-
"author": "Chamika Gayashan
|
|
34
|
+
"author": "Chamika Gayashan & Induranga Kawishwara",
|
|
35
35
|
"license": "MIT",
|
|
36
36
|
"dependencies": {}
|
|
37
37
|
}
|
package/template/package.json
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"dev": "next dev",
|
|
7
7
|
"build": "next build",
|
|
8
8
|
"lint": "eslint",
|
|
9
|
-
"lab": "
|
|
10
|
-
"validate": "
|
|
11
|
-
"package:template": "
|
|
12
|
-
"zip": "
|
|
13
|
-
"update:
|
|
9
|
+
"lab": "deneb lab .",
|
|
10
|
+
"validate": "deneb validate .",
|
|
11
|
+
"package:template": "deneb package .",
|
|
12
|
+
"zip": "deneb zip .",
|
|
13
|
+
"update:deneb": "deneb update"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"next": "15.5.23",
|
|
@@ -26,7 +26,10 @@
|
|
|
26
26
|
"eslint": "9.39.5",
|
|
27
27
|
"eslint-config-next": "15.5.23",
|
|
28
28
|
"typescript": "5.8.3",
|
|
29
|
-
"@
|
|
29
|
+
"@deneb-ui/cli": "^2.0.0",
|
|
30
|
+
"tailwindcss": "^3.4.17",
|
|
31
|
+
"postcss": "^8.4.49",
|
|
32
|
+
"autoprefixer": "^10.4.20"
|
|
30
33
|
},
|
|
31
34
|
"overrides": {
|
|
32
35
|
"postcss": "8.5.26",
|
|
@@ -118,23 +118,44 @@ export default function HomePage() {
|
|
|
118
118
|
>
|
|
119
119
|
<div className="dev-guide-header">
|
|
120
120
|
<span className="dev-badge" data-preview-static="dev-guidance">
|
|
121
|
-
⚡
|
|
121
|
+
⚡ DENEB UI & Fivora Developer Guide
|
|
122
122
|
</span>
|
|
123
123
|
<h2 data-preview-static="dev-guidance">
|
|
124
|
-
|
|
124
|
+
How DENEB UI Configures with the Fivora Live Editor
|
|
125
125
|
</h2>
|
|
126
126
|
<p data-preview-static="dev-guidance">
|
|
127
|
-
|
|
127
|
+
DENEB UI components are visual-first React primitives engineered for live editing in the Fivora merchant platform:
|
|
128
128
|
</p>
|
|
129
129
|
</div>
|
|
130
130
|
|
|
131
|
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 my-8 text-left max-w-5xl mx-auto">
|
|
132
|
+
<div className="p-6 bg-white rounded-2xl border border-slate-200 shadow-sm">
|
|
133
|
+
<h4 data-preview-static="dev-card-title" className="font-bold text-slate-900 mb-2">1. Live Field Markers</h4>
|
|
134
|
+
<p data-preview-static="dev-card-desc" className="text-sm text-slate-500 leading-relaxed">
|
|
135
|
+
Every editable string connects to <code data-preview-static="dev-code">site-data.json</code> via <code data-preview-static="dev-code">data-preview-field-path="home.title"</code>. Clicking in Fivora highlights the field in the sidebar.
|
|
136
|
+
</p>
|
|
137
|
+
</div>
|
|
138
|
+
<div className="p-6 bg-white rounded-2xl border border-slate-200 shadow-sm">
|
|
139
|
+
<h4 data-preview-static="dev-card-title" className="font-bold text-slate-900 mb-2">2. Auto-Balancing Grids</h4>
|
|
140
|
+
<p data-preview-static="dev-card-desc" className="text-sm text-slate-500 leading-relaxed">
|
|
141
|
+
Use <code data-preview-static="dev-code"><EditableGrid></code> and <code data-preview-static="dev-code"><EditableCard></code> from <code data-preview-static="dev-code">@deneb-ui/ui</code> to ensure card heights remain balanced regardless of merchant copy length.
|
|
142
|
+
</p>
|
|
143
|
+
</div>
|
|
144
|
+
<div className="p-6 bg-white rounded-2xl border border-slate-200 shadow-sm">
|
|
145
|
+
<h4 data-preview-static="dev-card-title" className="font-bold text-slate-900 mb-2">3. Add UI Components</h4>
|
|
146
|
+
<p data-preview-static="dev-card-desc" className="text-sm text-slate-500 leading-relaxed">
|
|
147
|
+
Install pre-built components into <code data-preview-static="dev-code">src/components/ui/</code> anytime using <code data-preview-static="dev-code">npx deneb add <name></code> (e.g. product-card, contact-actions, dialog).
|
|
148
|
+
</p>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
131
152
|
<div className="dev-command-grid">
|
|
132
153
|
<div className="dev-cmd-card">
|
|
133
154
|
<div className="cmd-header">
|
|
134
155
|
<span className="cmd-tag" data-preview-static="dev-tag">Development</span>
|
|
135
156
|
<code data-preview-static="dev-command">npm run dev</code>
|
|
136
157
|
</div>
|
|
137
|
-
<p data-preview-static="dev-description">Hot-reloading local development with Next.js &
|
|
158
|
+
<p data-preview-static="dev-description">Hot-reloading local development with Next.js & Tailwind CSS.</p>
|
|
138
159
|
</div>
|
|
139
160
|
|
|
140
161
|
<div className="dev-cmd-card">
|
|
@@ -150,7 +171,7 @@ export default function HomePage() {
|
|
|
150
171
|
<span className="cmd-tag" data-preview-static="dev-tag">Compliance</span>
|
|
151
172
|
<code data-preview-static="dev-command">npm run validate</code>
|
|
152
173
|
</div>
|
|
153
|
-
<p data-preview-static="dev-description">Runs
|
|
174
|
+
<p data-preview-static="dev-description">Runs Fivora preflight contract tests & empty states.</p>
|
|
154
175
|
</div>
|
|
155
176
|
|
|
156
177
|
<div className="dev-cmd-card">
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Config } from 'tailwindcss';
|
|
2
|
+
|
|
3
|
+
const config: Config = {
|
|
4
|
+
content: [
|
|
5
|
+
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
|
|
6
|
+
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
7
|
+
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
8
|
+
'./node_modules/@deneb-ui/ui/**/*.{js,ts,jsx,tsx}',
|
|
9
|
+
],
|
|
10
|
+
theme: {
|
|
11
|
+
extend: {
|
|
12
|
+
colors: {
|
|
13
|
+
brand: {
|
|
14
|
+
primary: 'var(--brand-primary, #2563eb)',
|
|
15
|
+
secondary: 'var(--brand-secondary, #0f172a)',
|
|
16
|
+
accent: 'var(--brand-accent, #14b8a6)',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
plugins: [],
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default config;
|