@zenithbuild/core 1.3.13 → 1.3.17

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 (129) hide show
  1. package/bin/zenith.js +1 -1
  2. package/cli/commands/build.ts +1 -1
  3. package/cli/commands/dev.ts +11 -7
  4. package/dist/bin/zen-build.d.ts +2 -0
  5. package/dist/bin/zen-build.d.ts.map +1 -0
  6. package/dist/bin/zen-build.js +3 -0
  7. package/dist/bin/zen-build.js.map +1 -0
  8. package/dist/bin/zen-dev.d.ts +2 -0
  9. package/dist/bin/zen-dev.d.ts.map +1 -0
  10. package/dist/bin/zen-dev.js +3 -0
  11. package/dist/bin/zen-dev.js.map +1 -0
  12. package/dist/bin/zen-preview.d.ts +2 -0
  13. package/dist/bin/zen-preview.d.ts.map +1 -0
  14. package/dist/bin/zen-preview.js +3 -0
  15. package/dist/bin/zen-preview.js.map +1 -0
  16. package/dist/bin/zenith.d.ts +2 -0
  17. package/dist/bin/zenith.d.ts.map +1 -0
  18. package/dist/bin/zenith.js +3 -0
  19. package/dist/bin/zenith.js.map +1 -0
  20. package/dist/cli/commands/add.d.ts +10 -0
  21. package/dist/cli/commands/add.d.ts.map +1 -0
  22. package/dist/cli/commands/add.js +27 -0
  23. package/dist/cli/commands/add.js.map +1 -0
  24. package/dist/cli/commands/build.d.ts +10 -0
  25. package/dist/cli/commands/build.d.ts.map +1 -0
  26. package/dist/cli/commands/build.js +29 -0
  27. package/dist/cli/commands/build.js.map +1 -0
  28. package/dist/cli/commands/create.d.ts +11 -0
  29. package/dist/cli/commands/create.d.ts.map +1 -0
  30. package/dist/cli/commands/create.js +625 -0
  31. package/dist/cli/commands/create.js.map +1 -0
  32. package/dist/cli/commands/dev.d.ts +24 -0
  33. package/dist/cli/commands/dev.d.ts.map +1 -0
  34. package/dist/cli/commands/dev.js +402 -0
  35. package/dist/cli/commands/dev.js.map +1 -0
  36. package/dist/cli/commands/index.d.ts +16 -0
  37. package/dist/cli/commands/index.d.ts.map +1 -0
  38. package/dist/cli/commands/index.js +101 -0
  39. package/dist/cli/commands/index.js.map +1 -0
  40. package/dist/cli/commands/preview.d.ts +10 -0
  41. package/dist/cli/commands/preview.d.ts.map +1 -0
  42. package/dist/cli/commands/preview.js +49 -0
  43. package/dist/cli/commands/preview.js.map +1 -0
  44. package/dist/cli/commands/remove.d.ts +7 -0
  45. package/dist/cli/commands/remove.d.ts.map +1 -0
  46. package/dist/cli/commands/remove.js +27 -0
  47. package/dist/cli/commands/remove.js.map +1 -0
  48. package/dist/cli/main.d.ts +11 -0
  49. package/dist/cli/main.d.ts.map +1 -0
  50. package/dist/cli/main.js +88 -0
  51. package/dist/cli/main.js.map +1 -0
  52. package/dist/cli/utils/branding.d.ts +51 -0
  53. package/dist/cli/utils/branding.d.ts.map +1 -0
  54. package/dist/cli/utils/branding.js +147 -0
  55. package/dist/cli/utils/branding.js.map +1 -0
  56. package/dist/cli/utils/logger.d.ts +15 -0
  57. package/dist/cli/utils/logger.d.ts.map +1 -0
  58. package/dist/cli/utils/logger.js +40 -0
  59. package/dist/cli/utils/logger.js.map +1 -0
  60. package/dist/cli/utils/plugin-manager.d.ts +34 -0
  61. package/dist/cli/utils/plugin-manager.d.ts.map +1 -0
  62. package/dist/cli/utils/plugin-manager.js +89 -0
  63. package/dist/cli/utils/plugin-manager.js.map +1 -0
  64. package/dist/cli/utils/project.d.ts +24 -0
  65. package/dist/cli/utils/project.d.ts.map +1 -0
  66. package/dist/cli/utils/project.js +62 -0
  67. package/dist/cli/utils/project.js.map +1 -0
  68. package/dist/core/components/index.d.ts +10 -0
  69. package/dist/core/components/index.d.ts.map +1 -0
  70. package/dist/core/components/index.js +14 -0
  71. package/dist/core/components/index.js.map +1 -0
  72. package/dist/core/config.d.ts +2 -0
  73. package/dist/core/config.d.ts.map +1 -0
  74. package/dist/core/config.js +2 -0
  75. package/dist/core/config.js.map +1 -0
  76. package/dist/core/index.d.ts +63 -0
  77. package/dist/core/index.d.ts.map +1 -0
  78. package/dist/core/index.js +78 -0
  79. package/dist/core/index.js.map +1 -0
  80. package/dist/core/lifecycle/index.d.ts +17 -0
  81. package/dist/core/lifecycle/index.d.ts.map +1 -0
  82. package/dist/core/lifecycle/index.js +20 -0
  83. package/dist/core/lifecycle/index.js.map +1 -0
  84. package/dist/core/lifecycle/zen-mount.d.ts +67 -0
  85. package/dist/core/lifecycle/zen-mount.d.ts.map +1 -0
  86. package/dist/core/lifecycle/zen-mount.js +152 -0
  87. package/dist/core/lifecycle/zen-mount.js.map +1 -0
  88. package/dist/core/lifecycle/zen-unmount.d.ts +55 -0
  89. package/dist/core/lifecycle/zen-unmount.d.ts.map +1 -0
  90. package/dist/core/lifecycle/zen-unmount.js +77 -0
  91. package/dist/core/lifecycle/zen-unmount.js.map +1 -0
  92. package/dist/core/reactivity/index.d.ts +31 -0
  93. package/dist/core/reactivity/index.d.ts.map +1 -0
  94. package/dist/core/reactivity/index.js +34 -0
  95. package/dist/core/reactivity/index.js.map +1 -0
  96. package/dist/core/reactivity/tracking.d.ts +75 -0
  97. package/dist/core/reactivity/tracking.d.ts.map +1 -0
  98. package/dist/core/reactivity/tracking.js +137 -0
  99. package/dist/core/reactivity/tracking.js.map +1 -0
  100. package/dist/core/reactivity/zen-batch.d.ts +46 -0
  101. package/dist/core/reactivity/zen-batch.d.ts.map +1 -0
  102. package/dist/core/reactivity/zen-batch.js +55 -0
  103. package/dist/core/reactivity/zen-batch.js.map +1 -0
  104. package/dist/core/reactivity/zen-effect.d.ts +49 -0
  105. package/dist/core/reactivity/zen-effect.d.ts.map +1 -0
  106. package/dist/core/reactivity/zen-effect.js +99 -0
  107. package/dist/core/reactivity/zen-effect.js.map +1 -0
  108. package/dist/core/reactivity/zen-memo.d.ts +44 -0
  109. package/dist/core/reactivity/zen-memo.d.ts.map +1 -0
  110. package/dist/core/reactivity/zen-memo.js +101 -0
  111. package/dist/core/reactivity/zen-memo.js.map +1 -0
  112. package/dist/core/reactivity/zen-ref.d.ts +45 -0
  113. package/dist/core/reactivity/zen-ref.d.ts.map +1 -0
  114. package/dist/core/reactivity/zen-ref.js +35 -0
  115. package/dist/core/reactivity/zen-ref.js.map +1 -0
  116. package/dist/core/reactivity/zen-signal.d.ts +49 -0
  117. package/dist/core/reactivity/zen-signal.d.ts.map +1 -0
  118. package/dist/core/reactivity/zen-signal.js +85 -0
  119. package/dist/core/reactivity/zen-signal.js.map +1 -0
  120. package/dist/core/reactivity/zen-state.d.ts +36 -0
  121. package/dist/core/reactivity/zen-state.d.ts.map +1 -0
  122. package/dist/core/reactivity/zen-state.js +148 -0
  123. package/dist/core/reactivity/zen-state.js.map +1 -0
  124. package/dist/core/reactivity/zen-untrack.d.ts +39 -0
  125. package/dist/core/reactivity/zen-untrack.d.ts.map +1 -0
  126. package/dist/core/reactivity/zen-untrack.js +42 -0
  127. package/dist/core/reactivity/zen-untrack.js.map +1 -0
  128. package/package.json +17 -14
  129. package/tsconfig.json +24 -26
@@ -0,0 +1,625 @@
1
+ /**
2
+ * @zenithbuild/cli - Create Command
3
+ *
4
+ * Scaffolds a new Zenith application with interactive prompts,
5
+ * branded visuals, and optional configuration generation.
6
+ */
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+ import { execSync } from 'child_process';
10
+ import readline from 'readline';
11
+ import * as brand from '../utils/branding';
12
+ /**
13
+ * Interactive readline prompt helper
14
+ */
15
+ async function prompt(question, defaultValue) {
16
+ const rl = readline.createInterface({
17
+ input: process.stdin,
18
+ output: process.stdout
19
+ });
20
+ const displayQuestion = defaultValue
21
+ ? `${question} ${brand.dim(`(${defaultValue})`)}: `
22
+ : `${question}: `;
23
+ return new Promise((resolve) => {
24
+ rl.question(displayQuestion, (answer) => {
25
+ rl.close();
26
+ resolve(answer.trim() || defaultValue || '');
27
+ });
28
+ });
29
+ }
30
+ /**
31
+ * Yes/No prompt helper
32
+ */
33
+ async function confirm(question, defaultYes = true) {
34
+ const hint = defaultYes ? 'Y/n' : 'y/N';
35
+ const answer = await prompt(`${question} ${brand.dim(`(${hint})`)}`);
36
+ if (!answer)
37
+ return defaultYes;
38
+ return answer.toLowerCase().startsWith('y');
39
+ }
40
+ /**
41
+ * Main create command
42
+ */
43
+ export async function create(appName) {
44
+ // Show branded intro
45
+ await brand.showIntro();
46
+ brand.header('Create a new Zenith app');
47
+ // Gather project options
48
+ const options = await gatherOptions(appName);
49
+ console.log('');
50
+ const spinner = new brand.Spinner('Creating project structure...');
51
+ spinner.start();
52
+ try {
53
+ // Create project
54
+ await createProject(options);
55
+ spinner.succeed('Project structure created');
56
+ // Always generate configs (tsconfig.json is required)
57
+ const configSpinner = new brand.Spinner('Generating configurations...');
58
+ configSpinner.start();
59
+ await generateConfigs(options);
60
+ configSpinner.succeed('Configurations generated');
61
+ // Install dependencies
62
+ const installSpinner = new brand.Spinner('Installing dependencies...');
63
+ installSpinner.start();
64
+ const targetDir = path.resolve(process.cwd(), options.name);
65
+ process.chdir(targetDir);
66
+ try {
67
+ execSync('bun install', { stdio: 'pipe' });
68
+ installSpinner.succeed('Dependencies installed');
69
+ }
70
+ catch {
71
+ try {
72
+ execSync('npm install', { stdio: 'pipe' });
73
+ installSpinner.succeed('Dependencies installed');
74
+ }
75
+ catch {
76
+ installSpinner.fail('Could not install dependencies automatically');
77
+ brand.warn('Run "bun install" or "npm install" manually');
78
+ }
79
+ }
80
+ // Show success message
81
+ brand.showNextSteps(options.name);
82
+ }
83
+ catch (err) {
84
+ spinner.fail('Failed to create project');
85
+ const message = err instanceof Error ? err.message : String(err);
86
+ brand.error(message);
87
+ process.exit(1);
88
+ }
89
+ }
90
+ /**
91
+ * Gather all project options through interactive prompts
92
+ */
93
+ async function gatherOptions(providedName) {
94
+ // Project name
95
+ let name = providedName;
96
+ if (!name) {
97
+ name = await prompt(brand.highlight('Project name'));
98
+ if (!name) {
99
+ brand.error('Project name is required');
100
+ process.exit(1);
101
+ }
102
+ }
103
+ const targetDir = path.resolve(process.cwd(), name);
104
+ if (fs.existsSync(targetDir)) {
105
+ brand.error(`Directory "${name}" already exists`);
106
+ process.exit(1);
107
+ }
108
+ console.log('');
109
+ brand.info(`Creating ${brand.bold(name)} in ${brand.dim(targetDir)}`);
110
+ console.log('');
111
+ // Directory structure
112
+ const useSrc = await confirm('Use src/ directory instead of app/?', false);
113
+ const directory = useSrc ? 'src' : 'app';
114
+ // ESLint
115
+ const eslint = await confirm('Add ESLint for code linting?', true);
116
+ // Prettier
117
+ const prettier = await confirm('Add Prettier for code formatting?', true);
118
+ // TypeScript path aliases
119
+ const pathAlias = await confirm('Add TypeScript path alias (@/*)?', true);
120
+ return {
121
+ name,
122
+ directory,
123
+ eslint,
124
+ prettier,
125
+ pathAlias
126
+ };
127
+ }
128
+ /**
129
+ * Create the project directory structure and files
130
+ */
131
+ async function createProject(options) {
132
+ const targetDir = path.resolve(process.cwd(), options.name);
133
+ const baseDir = options.directory;
134
+ const appDir = path.join(targetDir, baseDir);
135
+ // Create directories
136
+ fs.mkdirSync(targetDir, { recursive: true });
137
+ fs.mkdirSync(path.join(appDir, 'pages'), { recursive: true });
138
+ fs.mkdirSync(path.join(appDir, 'layouts'), { recursive: true });
139
+ fs.mkdirSync(path.join(appDir, 'components'), { recursive: true });
140
+ fs.mkdirSync(path.join(appDir, 'styles'), { recursive: true }); // Create styles inside appDir
141
+ // package.json
142
+ const pkg = {
143
+ name: options.name,
144
+ version: '0.1.0',
145
+ private: true,
146
+ type: 'module',
147
+ scripts: {
148
+ dev: 'zen-dev',
149
+ build: 'zen-build',
150
+ preview: 'zen-preview',
151
+ test: 'bun test'
152
+ },
153
+ dependencies: {
154
+ '@zenithbuild/core': '^0.1.0'
155
+ },
156
+ devDependencies: {
157
+ '@types/bun': 'latest'
158
+ }
159
+ };
160
+ // Add optional dev dependencies
161
+ const devDeps = pkg.devDependencies;
162
+ if (options.eslint) {
163
+ devDeps['eslint'] = '^8.0.0';
164
+ devDeps['@typescript-eslint/eslint-plugin'] = '^6.0.0';
165
+ devDeps['@typescript-eslint/parser'] = '^6.0.0';
166
+ pkg.scripts = { ...pkg.scripts, lint: 'eslint .' };
167
+ }
168
+ if (options.prettier) {
169
+ devDeps['prettier'] = '^3.0.0';
170
+ pkg.scripts = { ...pkg.scripts, format: 'prettier --write .' };
171
+ }
172
+ fs.writeFileSync(path.join(targetDir, 'package.json'), JSON.stringify(pkg, null, 4));
173
+ // index.zen
174
+ fs.writeFileSync(path.join(targetDir, baseDir, 'pages', 'index.zen'), generateIndexPage());
175
+ // DefaultLayout.zen
176
+ fs.writeFileSync(path.join(targetDir, baseDir, 'layouts', 'DefaultLayout.zen'), generateDefaultLayout());
177
+ // global.css
178
+ fs.writeFileSync(path.join(appDir, 'styles', 'global.css'), generateGlobalCSS());
179
+ // .gitignore
180
+ fs.writeFileSync(path.join(targetDir, '.gitignore'), generateGitignore());
181
+ }
182
+ /**
183
+ * Generate configuration files based on options
184
+ */
185
+ async function generateConfigs(options) {
186
+ const targetDir = path.resolve(process.cwd(), options.name);
187
+ // tsconfig.json
188
+ const tsconfig = {
189
+ compilerOptions: {
190
+ target: 'ESNext',
191
+ module: 'ESNext',
192
+ moduleResolution: 'bundler',
193
+ strict: true,
194
+ esModuleInterop: true,
195
+ skipLibCheck: true,
196
+ forceConsistentCasingInFileNames: true,
197
+ resolveJsonModule: true,
198
+ declaration: true,
199
+ declarationMap: true,
200
+ noEmit: true
201
+ },
202
+ include: [options.directory + '/**/*', '*.ts'],
203
+ exclude: ['node_modules', 'dist']
204
+ };
205
+ if (options.pathAlias) {
206
+ tsconfig.compilerOptions.baseUrl = '.';
207
+ tsconfig.compilerOptions.paths = {
208
+ '@/*': [`./${options.directory}/*`]
209
+ };
210
+ }
211
+ fs.writeFileSync(path.join(targetDir, 'tsconfig.json'), JSON.stringify(tsconfig, null, 4));
212
+ // ESLint config
213
+ if (options.eslint) {
214
+ const eslintConfig = {
215
+ root: true,
216
+ parser: '@typescript-eslint/parser',
217
+ plugins: ['@typescript-eslint'],
218
+ extends: [
219
+ 'eslint:recommended',
220
+ 'plugin:@typescript-eslint/recommended'
221
+ ],
222
+ env: {
223
+ browser: true,
224
+ node: true,
225
+ es2022: true
226
+ },
227
+ rules: {
228
+ '@typescript-eslint/no-unused-vars': 'warn',
229
+ '@typescript-eslint/no-explicit-any': 'warn'
230
+ },
231
+ ignorePatterns: ['dist', 'node_modules']
232
+ };
233
+ fs.writeFileSync(path.join(targetDir, '.eslintrc.json'), JSON.stringify(eslintConfig, null, 4));
234
+ }
235
+ // Prettier config
236
+ if (options.prettier) {
237
+ const prettierConfig = {
238
+ semi: false,
239
+ singleQuote: true,
240
+ tabWidth: 4,
241
+ trailingComma: 'es5',
242
+ printWidth: 100
243
+ };
244
+ fs.writeFileSync(path.join(targetDir, '.prettierrc'), JSON.stringify(prettierConfig, null, 4));
245
+ fs.writeFileSync(path.join(targetDir, '.prettierignore'), 'dist\nnode_modules\nbun.lock\n');
246
+ }
247
+ }
248
+ // Template generators
249
+ function generateIndexPage() {
250
+ return `<script setup="ts">
251
+ state count = 0
252
+
253
+ function increment() {
254
+ count = count + 1
255
+ }
256
+
257
+ function decrement() {
258
+ count = count - 1
259
+ }
260
+
261
+ zenOnMount(() => {
262
+ console.log('🚀 Zenith app mounted!')
263
+ })
264
+ </script>
265
+
266
+ <DefaultLayout title="Zenith App">
267
+ <main>
268
+ <div class="hero">
269
+ <h1>Welcome to <span class="brand">Zenith</span></h1>
270
+ <p class="tagline">The Modern Reactive Web Framework</p>
271
+ </div>
272
+
273
+ <div class="counter-card">
274
+ <h2>Interactive Counter</h2>
275
+ <p class="count">{count}</p>
276
+ <div class="buttons">
277
+ <button onclick="decrement" class="btn-secondary">−</button>
278
+ <button onclick="increment" class="btn-primary">+</button>
279
+ </div>
280
+ </div>
281
+
282
+ <div class="features">
283
+ <div class="feature">
284
+ <span class="icon">⚡</span>
285
+ <h3>Reactive State</h3>
286
+ <p>Built-in state management with automatic DOM updates</p>
287
+ </div>
288
+ <div class="feature">
289
+ <span class="icon">🎯</span>
290
+ <h3>Zero Config</h3>
291
+ <p>Works immediately with no build step required</p>
292
+ </div>
293
+ <div class="feature">
294
+ <span class="icon">🔥</span>
295
+ <h3>Hot Reload</h3>
296
+ <p>Instant updates during development</p>
297
+ </div>
298
+ </div>
299
+ </div>
300
+ </DefaultLayout>
301
+
302
+ <style>
303
+ main {
304
+ max-width: 900px;
305
+ margin: 0 auto;
306
+ padding: 3rem 2rem;
307
+ font-family: system-ui, -apple-system, sans-serif;
308
+ background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
309
+ color: #f1f5f9;
310
+ min-height: 100vh;
311
+ }
312
+
313
+ .hero {
314
+ text-align: center;
315
+ margin-bottom: 3rem;
316
+ }
317
+
318
+ h1 {
319
+ font-size: 3rem;
320
+ font-weight: 700;
321
+ margin-bottom: 0.5rem;
322
+ }
323
+
324
+ .brand {
325
+ background: linear-gradient(135deg, #3b82f6, #06b6d4);
326
+ -webkit-background-clip: text;
327
+ -webkit-text-fill-color: transparent;
328
+ background-clip: text;
329
+ }
330
+
331
+ .tagline {
332
+ color: #94a3b8;
333
+ font-size: 1.25rem;
334
+ }
335
+
336
+ .counter-card {
337
+ background: rgba(255, 255, 255, 0.05);
338
+ border: 1px solid rgba(255, 255, 255, 0.1);
339
+ border-radius: 16px;
340
+ padding: 2rem;
341
+ text-align: center;
342
+ margin-bottom: 3rem;
343
+ }
344
+
345
+ .counter-card h2 {
346
+ color: #e2e8f0;
347
+ margin-bottom: 1rem;
348
+ }
349
+
350
+ .count {
351
+ font-size: 4rem;
352
+ font-weight: 700;
353
+ color: #3b82f6;
354
+ margin: 1rem 0;
355
+ }
356
+
357
+ .buttons {
358
+ display: flex;
359
+ gap: 1rem;
360
+ justify-content: center;
361
+ }
362
+
363
+ button {
364
+ font-size: 1.5rem;
365
+ width: 60px;
366
+ height: 60px;
367
+ border: none;
368
+ border-radius: 12px;
369
+ cursor: pointer;
370
+ transition: all 0.2s ease;
371
+ font-weight: 600;
372
+ }
373
+
374
+ .btn-primary {
375
+ background: linear-gradient(135deg, #3b82f6, #2563eb);
376
+ color: white;
377
+ }
378
+
379
+ .btn-primary:hover {
380
+ transform: translateY(-2px);
381
+ box-shadow: 0 8px 20px rgba(59, 130, 246, 0.4);
382
+ }
383
+
384
+ .btn-secondary {
385
+ background: rgba(255, 255, 255, 0.1);
386
+ color: #e2e8f0;
387
+ }
388
+
389
+ .btn-secondary:hover {
390
+ background: rgba(255, 255, 255, 0.2);
391
+ }
392
+
393
+ .features {
394
+ display: grid;
395
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
396
+ gap: 1.5rem;
397
+ }
398
+
399
+ .feature {
400
+ background: rgba(255, 255, 255, 0.03);
401
+ border: 1px solid rgba(255, 255, 255, 0.06);
402
+ border-radius: 12px;
403
+ padding: 1.5rem;
404
+ text-align: center;
405
+ }
406
+
407
+ .icon {
408
+ font-size: 2rem;
409
+ display: block;
410
+ margin-bottom: 0.75rem;
411
+ }
412
+
413
+ .feature h3 {
414
+ color: #e2e8f0;
415
+ margin-bottom: 0.5rem;
416
+ font-size: 1.1rem;
417
+ }
418
+
419
+ .feature p {
420
+ color: #94a3b8;
421
+ font-size: 0.9rem;
422
+ line-height: 1.5;
423
+ }
424
+ </style>
425
+ `;
426
+ }
427
+ function generateDefaultLayout() {
428
+ return `<script setup="ts">
429
+ // interface Props { title?: string; lang?: string }
430
+
431
+ zenEffect(() => {
432
+ document.title = title || 'Zenith App'
433
+ })
434
+
435
+ zenOnMount(() => {
436
+ console.log(\`[Layout] Mounted with title: \${title || 'Zenith App'}\`)
437
+ })
438
+ </script>
439
+
440
+ <html lang={lang || 'en'}>
441
+ <head>
442
+ <meta charset="UTF-8">
443
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
444
+ <link rel="stylesheet" href="/styles/global.css">
445
+ </head>
446
+ <body>
447
+ <div class="layout">
448
+ <header class="header">
449
+ <nav class="nav">
450
+ <a href="/" class="logo">⚡ Zenith</a>
451
+ <div class="nav-links">
452
+ <a href="/">Home</a>
453
+ <a href="/docs">Docs</a>
454
+ <a href="https://github.com/zenithbuild/zenith" target="_blank">GitHub</a>
455
+ </div>
456
+ </nav>
457
+ </header>
458
+
459
+ <main class="content">
460
+ <slot />
461
+ </main>
462
+
463
+ <footer class="footer">
464
+ <p>Built with ⚡ Zenith Framework</p>
465
+ </footer>
466
+ </div>
467
+ </body>
468
+ </html>
469
+
470
+ <style>
471
+ .layout {
472
+ min-height: 100vh;
473
+ display: flex;
474
+ flex-direction: column;
475
+ }
476
+
477
+ .header {
478
+ background: rgba(15, 23, 42, 0.95);
479
+ backdrop-filter: blur(10px);
480
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
481
+ position: sticky;
482
+ top: 0;
483
+ z-index: 100;
484
+ }
485
+
486
+ .nav {
487
+ max-width: 1200px;
488
+ margin: 0 auto;
489
+ padding: 1rem 2rem;
490
+ display: flex;
491
+ justify-content: space-between;
492
+ align-items: center;
493
+ }
494
+
495
+ .logo {
496
+ font-size: 1.25rem;
497
+ font-weight: 700;
498
+ color: #3b82f6;
499
+ text-decoration: none;
500
+ }
501
+
502
+ .nav-links {
503
+ display: flex;
504
+ gap: 2rem;
505
+ }
506
+
507
+ .nav-links a {
508
+ color: #94a3b8;
509
+ text-decoration: none;
510
+ transition: color 0.2s;
511
+ }
512
+
513
+ .nav-links a:hover {
514
+ color: #f1f5f9;
515
+ }
516
+
517
+ .content {
518
+ flex: 1;
519
+ }
520
+
521
+ .footer {
522
+ background: #0f172a;
523
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
524
+ padding: 2rem;
525
+ text-align: center;
526
+ color: #64748b;
527
+ }
528
+ </style>
529
+ `;
530
+ }
531
+ function generateGlobalCSS() {
532
+ return `/* Zenith Global Styles */
533
+
534
+ /* CSS Reset */
535
+ *, *::before, *::after {
536
+ box-sizing: border-box;
537
+ margin: 0;
538
+ padding: 0;
539
+ }
540
+
541
+ html {
542
+ font-size: 16px;
543
+ -webkit-font-smoothing: antialiased;
544
+ -moz-osx-font-smoothing: grayscale;
545
+ }
546
+
547
+ body {
548
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
549
+ line-height: 1.6;
550
+ background: #0f172a;
551
+ color: #f1f5f9;
552
+ }
553
+
554
+ a {
555
+ color: #3b82f6;
556
+ text-decoration: none;
557
+ }
558
+
559
+ a:hover {
560
+ text-decoration: underline;
561
+ }
562
+
563
+ img, video {
564
+ max-width: 100%;
565
+ height: auto;
566
+ }
567
+
568
+ button, input, select, textarea {
569
+ font: inherit;
570
+ }
571
+
572
+ /* Utility Classes */
573
+ .container {
574
+ max-width: 1200px;
575
+ margin: 0 auto;
576
+ padding: 0 1rem;
577
+ }
578
+
579
+ .text-center { text-align: center; }
580
+ .text-muted { color: #94a3b8; }
581
+
582
+ /* Zenith Brand Colors */
583
+ :root {
584
+ --zen-primary: #3b82f6;
585
+ --zen-secondary: #06b6d4;
586
+ --zen-bg: #0f172a;
587
+ --zen-surface: #1e293b;
588
+ --zen-text: #f1f5f9;
589
+ --zen-muted: #94a3b8;
590
+ }
591
+ `;
592
+ }
593
+ function generateGitignore() {
594
+ return `# Dependencies
595
+ node_modules/
596
+ bun.lock
597
+
598
+ # Build output
599
+ dist/
600
+ .cache/
601
+
602
+ # IDE
603
+ .idea/
604
+ .vscode/
605
+ *.swp
606
+ *.swo
607
+
608
+ # OS
609
+ .DS_Store
610
+ Thumbs.db
611
+
612
+ # Environment
613
+ .env
614
+ .env.local
615
+ .env.*.local
616
+
617
+ # Logs
618
+ *.log
619
+ npm-debug.log*
620
+
621
+ # Testing
622
+ coverage/
623
+ `;
624
+ }
625
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../cli/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @zenithbuild/cli - Dev Command
3
+ *
4
+ * Development server with HMR support.
5
+ *
6
+ * ═══════════════════════════════════════════════════════════════════════════════
7
+ * CLI HARDENING: BLIND ORCHESTRATOR PATTERN
8
+ * ═══════════════════════════════════════════════════════════════════════════════
9
+ *
10
+ * This file follows the CLI Hardening Plan:
11
+ * - NO plugin-specific branching (no `if (hasContentPlugin)`)
12
+ * - NO semantic helpers (no `getContentData()`)
13
+ * - NO plugin type imports or casts
14
+ * - ONLY opaque data forwarding via hooks
15
+ *
16
+ * The CLI dispatches lifecycle hooks and collects payloads.
17
+ * It never understands what the data means.
18
+ * ═══════════════════════════════════════════════════════════════════════════════
19
+ */
20
+ export interface DevOptions {
21
+ port?: number;
22
+ }
23
+ export declare function dev(options?: DevOptions): Promise<void>;
24
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA8BH,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAkBD,wBAAsB,GAAG,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqYjE"}