@deneb-ui/create-template 2.0.0 → 2.0.3

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 CHANGED
@@ -1,36 +1,47 @@
1
- # @fivora/create-template
1
+ # DENEB
2
2
 
3
- Scaffold a modern, pre-validated **Fivora** template in seconds (Vite-style initializer).
3
+ ### The official template initializer for DENEB UI.
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/@fivora/create-template.svg)](https://www.npmjs.com/package/@fivora/create-template)
5
+ > **DENEB UI — Build beautiful interfaces, effortlessly.**
6
+ > The premier visual-first React component ecosystem.
7
+ > Created by **Chamika Gayashan & Induranga Kawishwara**.
8
+
9
+ [![Framework: DENEB UI](https://img.shields.io/badge/Framework-DENEB_UI_v2.0-blue.svg)](https://github.com/chamikathereal)
6
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT)
7
11
 
8
12
  ---
9
13
 
10
14
  ## Quick Start
11
15
 
12
- Create a new Fivora template with a single command:
16
+ Scaffold a complete storefront in seconds with a single command:
13
17
 
14
18
  ```bash
15
19
  # Using npm
16
- npm create @fivora/template my-store
20
+ npm create @deneb-ui/template my-store
17
21
 
18
22
  # Or using npx
19
- npx @fivora/create-template my-store
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
- # Or yarn / pnpm
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 install
31
- npm run dev # Start Next.js local development
32
- npm run lab # Test in Fivora Visual Editing Lab
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
- - 🎨 **`@fivora/editable-components`**: Pre-configured visual editing primitives and theme palettes
44
- - 🛠️ **`@fivora/cli`**: Built-in developer tools (`lab`, `validate`, `zip`)
45
- - 📋 **`fivora-template.json`**: Strict Version 2 template manifest
46
- - 📦 **`src/data/site-data.json`**: Merchant defaults and editable content structure
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 @fivora/create-template <project-name> [options]
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-fashion-store`) |
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
- ## License
76
+ ## 👤 Author & Credits
64
77
 
65
- MIT © [Fivora](https://fivora.com)
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
- \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 (CEE G)\x1b[0m\x1b[36m
16
- ╚═══════════════════════════════════════════════════════╝\x1b[0m
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
- rl.question('Project name (e.g. my-deneb-store): ', (answer) => {
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-template';
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.0",
4
- "description": "Scaffold a modern, pre-validated DENEB UI storefront template in seconds. Created by Chamika Gayashan (CEE G).",
3
+ "version": "2.0.3",
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 (CEE G)",
34
+ "author": "Chamika Gayashan & Induranga Kawishwara",
35
35
  "license": "MIT",
36
36
  "dependencies": {}
37
37
  }
@@ -6,11 +6,11 @@
6
6
  "dev": "next dev",
7
7
  "build": "next build",
8
8
  "lint": "eslint",
9
- "lab": "fivora lab .",
10
- "validate": "fivora validate .",
11
- "package:template": "fivora package .",
12
- "zip": "fivora zip .",
13
- "update:fivora": "fivora 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
- "@fivora/cli": "^1.0.0"
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",
@@ -0,0 +1,8 @@
1
+ const config = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ };
7
+
8
+ export default config;
@@ -1,3 +1,7 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
1
5
  :root {
2
6
  color-scheme: light;
3
7
  }
@@ -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
- Template Developer Quickstart
121
+ DENEB UI &amp; Fivora Developer Guide
122
122
  </span>
123
123
  <h2 data-preview-static="dev-guidance">
124
- Build, Test, and Package with Fivora
124
+ How DENEB UI Configures with the Fivora Live Editor
125
125
  </h2>
126
126
  <p data-preview-static="dev-guidance">
127
- Run these commands directly in your template terminal:
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">fieldPath=&quot;home.title&quot;</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">&lt;EditableGrid&gt;</code> and <code data-preview-static="dev-code">&lt;EditableCard&gt;</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 &lt;name&gt;</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 &amp; React 19.</p>
158
+ <p data-preview-static="dev-description">Hot-reloading local development with Next.js &amp; 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 fivora preflight contract tests &amp; empty states.</p>
174
+ <p data-preview-static="dev-description">Runs Fivora preflight contract tests &amp; empty states.</p>
154
175
  </div>
155
176
 
156
177
  <div className="dev-cmd-card">
@@ -3,7 +3,7 @@
3
3
  import type { ReactNode } from 'react';
4
4
  import { usePathname } from 'next/navigation';
5
5
  import { useSiteData } from '@/lib/siteDataContext';
6
- import { Navbar, Footer, getThemeCssProperties } from '@deneb-ui/ui';
6
+ import { Navbar, Footer, AnnouncementBar, FloatingContactWidget, getThemeCssProperties } from '@deneb-ui/ui';
7
7
 
8
8
  export default function SiteChrome({ children }: { children: ReactNode }) {
9
9
  const siteData = useSiteData();
@@ -14,9 +14,11 @@ export default function SiteChrome({ children }: { children: ReactNode }) {
14
14
 
15
15
  return (
16
16
  <div className="site-shell" style={themeStyle}>
17
+ <AnnouncementBar />
17
18
  <Navbar activeRoute={pathname} />
18
19
  <main>{children}</main>
19
20
  <Footer />
21
+ <FloatingContactWidget />
20
22
  </div>
21
23
  );
22
24
  }
@@ -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;