create-cronus-app 0.6.0 → 0.6.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/dist/index.js CHANGED
@@ -180,11 +180,11 @@ async function main() {
180
180
  log.step(`Scaffolding into ${c.cyan(dirName)}…`);
181
181
  const { fileCount } = scaffold({ targetDir, name, theme, mode, template });
182
182
  log.ok(`Created ${fileCount} files (${c.cyan(template)} template, ${c.cyan(theme)} theme, ${mode} mode).`);
183
- // Cronus Compose: store/landing scaffold the `default` base above, then generate
184
- // their pages + chrome from validated registry blocks. The blocks pull npm deps
185
- // (e.g. lucide-react) that the base package.json lacks, so let compose record +
186
- // install them via `pm add` when installing is enabled; a following `--no-install`
187
- // scaffold records nothing (matching `cronus-ui add --no-install`).
183
+ // Cronus Compose: store/landing/saas/admin scaffold the `default` base above,
184
+ // then generate pages + chrome from validated registry blocks. Blocks pull npm
185
+ // deps (e.g. lucide-react) the base package.json lacks; compose always records
186
+ // those pins into package.json, and still runs `pm add` when installing is on.
187
+ // `--no-install` skips the spawn so a later `bun install` picks the pins up.
188
188
  if (isComposedTemplate(template)) {
189
189
  log.step(`Composing the ${c.cyan(template)} app from validated blocks…`);
190
190
  const composed = await composeTemplate({
package/dist/utils.d.ts CHANGED
@@ -15,6 +15,7 @@ export declare const c: {
15
15
  * the copy without scraping stdout. `template` is optional for back-compat: omit
16
16
  * it (or pass a bundled template) to keep the component-add path; composed
17
17
  * templates (`saas`/`store`/`landing`) get add-page / theme / upgrade instead.
18
+ * saas/admin also get `db:push` before `dev` (sqlite gold path).
18
19
  */
19
20
  export declare function outroLines(name: string, pm: PackageManager, installed: boolean, template?: TemplateName): string[];
20
21
  export declare const log: {
@@ -45,7 +46,7 @@ export type LandingFlavor = (typeof LANDING_FLAVORS)[number];
45
46
  */
46
47
  export declare const PRO_APPS: readonly ["mail", "chat", "finance"];
47
48
  export type ProApp = (typeof PRO_APPS)[number];
48
- export declare const TEMPLATES: readonly ["default", "dashboard", "marketing", "store", "landing", "saas", "landing-studio", "landing-ops", "landing-secure", "landing-care", "landing-shop", "landing-docs", "landing-premium", "landing-agents", "landing-coverage", "landing-broadcast", "landing-agency", "landing-glass", "mail", "chat", "finance"];
49
+ export declare const TEMPLATES: readonly ["default", "dashboard", "marketing", "store", "landing", "saas", "admin", "docs", "landing-studio", "landing-ops", "landing-secure", "landing-care", "landing-shop", "landing-docs", "landing-premium", "landing-agents", "landing-coverage", "landing-broadcast", "landing-agency", "landing-glass", "mail", "chat", "finance"];
49
50
  export type TemplateName = (typeof TEMPLATES)[number];
50
51
  export declare const DEFAULT_TEMPLATE: TemplateName;
51
52
  /**
@@ -58,6 +59,8 @@ export declare const COMPOSED_TEMPLATES: {
58
59
  readonly store: "store";
59
60
  readonly landing: "landing";
60
61
  readonly saas: "saas";
62
+ readonly admin: "admin";
63
+ readonly docs: "docs";
61
64
  readonly "landing-studio": "landing-studio";
62
65
  readonly "landing-ops": "landing-ops";
63
66
  readonly "landing-secure": "landing-secure";
package/dist/utils.js CHANGED
@@ -18,12 +18,15 @@ export const c = {
18
18
  * the copy without scraping stdout. `template` is optional for back-compat: omit
19
19
  * it (or pass a bundled template) to keep the component-add path; composed
20
20
  * templates (`saas`/`store`/`landing`) get add-page / theme / upgrade instead.
21
+ * saas/admin also get `db:push` before `dev` (sqlite gold path).
21
22
  */
22
23
  export function outroLines(name, pm, installed, template) {
23
24
  const dev = pm === "npm" ? "npm run dev" : `${pm} dev`;
24
25
  const install = pm === "yarn" ? "yarn" : `${pm} install`;
26
+ const dbPush = pm === "npm" ? "npm run db:push" : `${pm} run db:push`;
25
27
  const dollar = c.dim("$");
26
28
  const composed = template !== undefined && isComposedTemplate(template);
29
+ const goldPath = template === "saas" || template === "admin";
27
30
  const grow = composed
28
31
  ? [
29
32
  "Grow the app anytime:",
@@ -42,6 +45,7 @@ export function outroLines(name, pm, installed, template) {
42
45
  "Next steps:",
43
46
  ` ${dollar} cd ${name}`,
44
47
  ...(installed ? [] : [` ${dollar} ${install}`]),
48
+ ...(goldPath ? [` ${dollar} ${dbPush}`] : []),
45
49
  ` ${dollar} ${dev}`,
46
50
  "",
47
51
  `Then open ${c.cyan("http://localhost:3000")}.`,
@@ -108,6 +112,8 @@ export const TEMPLATES = [
108
112
  "store",
109
113
  "landing",
110
114
  "saas",
115
+ "admin",
116
+ "docs",
111
117
  ...LANDING_FLAVORS,
112
118
  ...PRO_APPS,
113
119
  ];
@@ -122,6 +128,8 @@ export const COMPOSED_TEMPLATES = {
122
128
  store: "store",
123
129
  landing: "landing",
124
130
  saas: "saas",
131
+ admin: "admin",
132
+ docs: "docs",
125
133
  "landing-studio": "landing-studio",
126
134
  "landing-ops": "landing-ops",
127
135
  "landing-secure": "landing-secure",
@@ -158,6 +166,8 @@ export const TEMPLATE_HINTS = {
158
166
  store: "generated storefront — 9 navigable pages, real nav, from validated blocks",
159
167
  landing: "generated landing page — hero, features, pricing, testimonials, FAQ, CTA",
160
168
  saas: "recommended for a full product — split auth + shell dashboard, team, billing, settings",
169
+ admin: "admin console — split login + shell, overview, users, analytics, board, audit (midnight dark)",
170
+ docs: "docs site — changelog, guides, article, FAQ, about — not a marketing landing (neutral light)",
161
171
  "landing-studio": "dark AI studio landing — atmosphere hero, marquee, bento, stats, pricing",
162
172
  "landing-ops": "ops/workflow landing — split hero, logos, features, integrations",
163
173
  "landing-secure": "security/infra landing — compact hero, metrics, usage pricing, split FAQ",
@@ -205,6 +215,8 @@ export const TEMPLATE_APPEARANCE = {
205
215
  mail: { theme: "midnight", mode: "dark" },
206
216
  chat: { theme: "aurora", mode: "dark" },
207
217
  finance: { theme: "emerald", mode: "light" },
218
+ admin: { theme: "midnight", mode: "dark" },
219
+ docs: { theme: "neutral", mode: "light" },
208
220
  };
209
221
  /**
210
222
  * A single-select TTY prompt: prints a numbered list and returns the option the
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Kept in sync with package.json#version. */
2
- export declare const CREATE_VERSION = "0.6.0";
2
+ export declare const CREATE_VERSION = "0.6.2";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Kept in sync with package.json#version. */
2
- export const CREATE_VERSION = "0.6.0";
2
+ export const CREATE_VERSION = "0.6.2";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-cronus-app",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Scaffold a Next.js + Cronus UI app: npx create-cronus-app my-app --template saas.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,8 +43,8 @@
43
43
  "prepublishOnly": "tsc -p tsconfig.json"
44
44
  },
45
45
  "dependencies": {
46
- "@cronus-ui/ai-kit": "0.6.0",
47
- "cronus-ui": "0.6.0"
46
+ "@cronus-ui/ai-kit": "0.6.2",
47
+ "cronus-ui": "0.6.2"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/node": "^22.10.0",
@@ -9,7 +9,7 @@
9
9
  "lib": "lib",
10
10
  "blocks": "components/blocks"
11
11
  },
12
- "registry": "https://raw.githubusercontent.com/pedrogbraz/cronus-ui/v0.6.0/registry",
12
+ "registry": "https://raw.githubusercontent.com/pedrogbraz/cronus-ui/v0.6.2/registry",
13
13
  "theme": {
14
14
  "name": "__THEME__",
15
15
  "mode": "__MODE__"
@@ -9,9 +9,9 @@
9
9
  "start": "next start"
10
10
  },
11
11
  "dependencies": {
12
- "@cronus-ui/theme": "^0.6.0",
13
- "@cronus-ui/tokens": "^0.6.0",
14
- "@cronus-ui/ui": "^0.6.0",
12
+ "@cronus-ui/theme": "^0.6.2",
13
+ "@cronus-ui/tokens": "^0.6.2",
14
+ "@cronus-ui/ui": "^0.6.2",
15
15
  "@tanstack/react-table": "^8.21.3",
16
16
  "lucide-react": "^0.577.0",
17
17
  "next": "16.2.10",
@@ -9,7 +9,7 @@
9
9
  "lib": "lib",
10
10
  "blocks": "components/blocks"
11
11
  },
12
- "registry": "https://raw.githubusercontent.com/pedrogbraz/cronus-ui/v0.6.0/registry",
12
+ "registry": "https://raw.githubusercontent.com/pedrogbraz/cronus-ui/v0.6.2/registry",
13
13
  "theme": {
14
14
  "name": "__THEME__",
15
15
  "mode": "__MODE__"
@@ -9,9 +9,9 @@
9
9
  "start": "next start"
10
10
  },
11
11
  "dependencies": {
12
- "@cronus-ui/theme": "^0.6.0",
13
- "@cronus-ui/tokens": "^0.6.0",
14
- "@cronus-ui/ui": "^0.6.0",
12
+ "@cronus-ui/theme": "^0.6.2",
13
+ "@cronus-ui/tokens": "^0.6.2",
14
+ "@cronus-ui/ui": "^0.6.2",
15
15
  "next": "16.2.10",
16
16
  "react": "^19.2.0",
17
17
  "react-dom": "^19.2.0"
@@ -9,7 +9,7 @@
9
9
  "lib": "lib",
10
10
  "blocks": "components/blocks"
11
11
  },
12
- "registry": "https://raw.githubusercontent.com/pedrogbraz/cronus-ui/v0.6.0/registry",
12
+ "registry": "https://raw.githubusercontent.com/pedrogbraz/cronus-ui/v0.6.2/registry",
13
13
  "theme": {
14
14
  "name": "__THEME__",
15
15
  "mode": "__MODE__"
@@ -9,9 +9,9 @@
9
9
  "start": "next start"
10
10
  },
11
11
  "dependencies": {
12
- "@cronus-ui/theme": "^0.6.0",
13
- "@cronus-ui/tokens": "^0.6.0",
14
- "@cronus-ui/ui": "^0.6.0",
12
+ "@cronus-ui/theme": "^0.6.2",
13
+ "@cronus-ui/tokens": "^0.6.2",
14
+ "@cronus-ui/ui": "^0.6.2",
15
15
  "lucide-react": "^0.577.0",
16
16
  "next": "16.2.10",
17
17
  "react": "^19.2.0",