kofi-stack-types 2.0.23 → 2.1.36

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > kofi-stack-types@2.0.23 build /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/types
2
+ > kofi-stack-types@2.1.36 build /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/types
3
3
  > tsup src/index.ts --format esm --dts
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -7,8 +7,8 @@ CLI Using tsconfig: tsconfig.json
7
7
  CLI tsup v8.5.1
8
8
  CLI Target: es2022
9
9
  ESM Build start
10
- ESM dist/index.js 4.16 KB
11
- ESM ⚡️ Build success in 27ms
10
+ ESM dist/index.js 5.09 KB
11
+ ESM ⚡️ Build success in 30ms
12
12
  DTS Build start
13
- DTS ⚡️ Build success in 508ms
14
- DTS dist/index.d.ts 16.41 KB
13
+ DTS ⚡️ Build success in 596ms
14
+ DTS dist/index.d.ts 20.90 KB
@@ -0,0 +1,4 @@
1
+
2
+ > kofi-stack-types@2.2.0 typecheck /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/types
3
+ > tsc --noEmit
4
+
package/dist/index.d.ts CHANGED
@@ -5,42 +5,50 @@ declare const MarketingSiteSchema: z.ZodEnum<["none", "nextjs", "payload"]>;
5
5
  declare const AuthProviderSchema: z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>;
6
6
  declare const AnalyticsProviderSchema: z.ZodEnum<["none", "posthog", "vercel"]>;
7
7
  declare const UploadsProviderSchema: z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>;
8
- declare const BaseColorSchema: z.ZodEnum<["neutral", "gray", "zinc", "slate", "stone"]>;
9
- declare const ThemeColorSchema: z.ZodEnum<["zinc", "slate", "stone", "gray", "neutral", "red", "rose", "orange", "green", "blue", "yellow", "violet"]>;
10
- declare const MenuAccentSchema: z.ZodEnum<["none", "muted", "primary"]>;
11
- declare const IconLibrarySchema: z.ZodEnum<["lucide", "hugeicons"]>;
12
- declare const FontFamilySchema: z.ZodEnum<["geist", "inter", "system"]>;
13
- declare const BorderRadiusSchema: z.ZodEnum<["0", "0.3", "0.5", "0.75", "1.0"]>;
14
- declare const SpacingScaleSchema: z.ZodEnum<["default", "compact", "comfortable"]>;
8
+ declare const PayloadStorageProviderSchema: z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>;
9
+ declare const PaymentProviderSchema: z.ZodEnum<["none", "stripe", "polar"]>;
10
+ declare const ComponentLibrarySchema: z.ZodEnum<["base", "radix"]>;
11
+ declare const ShadcnStyleSchema: z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>;
12
+ declare const BaseColorSchema: z.ZodEnum<["neutral", "stone", "zinc", "gray"]>;
13
+ declare const ThemeColorSchema: z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>;
14
+ declare const IconLibrarySchema: z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>;
15
+ declare const FontSchema: z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>;
16
+ declare const MenuAccentSchema: z.ZodEnum<["subtle", "bold"]>;
17
+ declare const MenuColorSchema: z.ZodEnum<["default", "inverted"]>;
18
+ declare const RadiusSchema: z.ZodEnum<["default", "none", "small", "medium", "large"]>;
15
19
  declare const PackageManagerSchema: z.ZodEnum<["pnpm", "npm", "bun"]>;
16
20
  declare const AddonSchema: z.ZodEnum<["biome", "husky", "turborepo", "playwright", "vitest", "rate-limiting", "monitoring"]>;
21
+ declare const OptionalAppSchema: z.ZodEnum<["design-system", "mobile", "admin"]>;
17
22
  declare const DesignSystemConfigSchema: z.ZodObject<{
18
- baseColor: z.ZodEnum<["neutral", "gray", "zinc", "slate", "stone"]>;
19
- themeColor: z.ZodEnum<["zinc", "slate", "stone", "gray", "neutral", "red", "rose", "orange", "green", "blue", "yellow", "violet"]>;
20
- menuAccent: z.ZodEnum<["none", "muted", "primary"]>;
21
- iconLibrary: z.ZodEnum<["lucide", "hugeicons"]>;
22
- headingFont: z.ZodEnum<["geist", "inter", "system"]>;
23
- bodyFont: z.ZodEnum<["geist", "inter", "system"]>;
24
- borderRadius: z.ZodEnum<["0", "0.3", "0.5", "0.75", "1.0"]>;
25
- spacingScale: z.ZodEnum<["default", "compact", "comfortable"]>;
23
+ componentLibrary: z.ZodEnum<["base", "radix"]>;
24
+ style: z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>;
25
+ baseColor: z.ZodEnum<["neutral", "stone", "zinc", "gray"]>;
26
+ themeColor: z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>;
27
+ iconLibrary: z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>;
28
+ font: z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>;
29
+ menuAccent: z.ZodEnum<["subtle", "bold"]>;
30
+ menuColor: z.ZodEnum<["default", "inverted"]>;
31
+ radius: z.ZodEnum<["default", "none", "small", "medium", "large"]>;
26
32
  }, "strip", z.ZodTypeAny, {
27
- baseColor: "neutral" | "gray" | "zinc" | "slate" | "stone";
28
- themeColor: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet";
29
- menuAccent: "none" | "muted" | "primary";
30
- iconLibrary: "lucide" | "hugeicons";
31
- headingFont: "geist" | "inter" | "system";
32
- bodyFont: "geist" | "inter" | "system";
33
- borderRadius: "0" | "0.3" | "0.5" | "0.75" | "1.0";
34
- spacingScale: "default" | "compact" | "comfortable";
33
+ componentLibrary: "base" | "radix";
34
+ style: "vega" | "nova" | "maia" | "lyra" | "mira";
35
+ baseColor: "neutral" | "stone" | "zinc" | "gray";
36
+ themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
37
+ iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
38
+ font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
39
+ menuAccent: "subtle" | "bold";
40
+ menuColor: "default" | "inverted";
41
+ radius: "none" | "default" | "small" | "medium" | "large";
35
42
  }, {
36
- baseColor: "neutral" | "gray" | "zinc" | "slate" | "stone";
37
- themeColor: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet";
38
- menuAccent: "none" | "muted" | "primary";
39
- iconLibrary: "lucide" | "hugeicons";
40
- headingFont: "geist" | "inter" | "system";
41
- bodyFont: "geist" | "inter" | "system";
42
- borderRadius: "0" | "0.3" | "0.5" | "0.75" | "1.0";
43
- spacingScale: "default" | "compact" | "comfortable";
43
+ componentLibrary: "base" | "radix";
44
+ style: "vega" | "nova" | "maia" | "lyra" | "mira";
45
+ baseColor: "neutral" | "stone" | "zinc" | "gray";
46
+ themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
47
+ iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
48
+ font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
49
+ menuAccent: "subtle" | "bold";
50
+ menuColor: "default" | "inverted";
51
+ radius: "none" | "default" | "small" | "medium" | "large";
44
52
  }>;
45
53
  declare const AuthConfigSchema: z.ZodObject<{
46
54
  providers: z.ZodArray<z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>, "many">;
@@ -56,14 +64,17 @@ declare const IntegrationsConfigSchema: z.ZodObject<{
56
64
  analytics: z.ZodEnum<["none", "posthog", "vercel"]>;
57
65
  uploads: z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>;
58
66
  payments: z.ZodEnum<["none", "stripe", "polar"]>;
67
+ payloadStorage: z.ZodOptional<z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>>;
59
68
  }, "strip", z.ZodTypeAny, {
60
69
  analytics: "none" | "posthog" | "vercel";
61
70
  uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
62
71
  payments: "none" | "stripe" | "polar";
72
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
63
73
  }, {
64
74
  analytics: "none" | "posthog" | "vercel";
65
75
  uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
66
76
  payments: "none" | "stripe" | "polar";
77
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
67
78
  }>;
68
79
  declare const ProjectConfigSchema: z.ZodObject<{
69
80
  projectName: z.ZodString;
@@ -71,32 +82,35 @@ declare const ProjectConfigSchema: z.ZodObject<{
71
82
  structure: z.ZodEnum<["standalone", "monorepo"]>;
72
83
  marketingSite: z.ZodEnum<["none", "nextjs", "payload"]>;
73
84
  shadcn: z.ZodObject<{
74
- baseColor: z.ZodEnum<["neutral", "gray", "zinc", "slate", "stone"]>;
75
- themeColor: z.ZodEnum<["zinc", "slate", "stone", "gray", "neutral", "red", "rose", "orange", "green", "blue", "yellow", "violet"]>;
76
- menuAccent: z.ZodEnum<["none", "muted", "primary"]>;
77
- iconLibrary: z.ZodEnum<["lucide", "hugeicons"]>;
78
- headingFont: z.ZodEnum<["geist", "inter", "system"]>;
79
- bodyFont: z.ZodEnum<["geist", "inter", "system"]>;
80
- borderRadius: z.ZodEnum<["0", "0.3", "0.5", "0.75", "1.0"]>;
81
- spacingScale: z.ZodEnum<["default", "compact", "comfortable"]>;
85
+ componentLibrary: z.ZodEnum<["base", "radix"]>;
86
+ style: z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>;
87
+ baseColor: z.ZodEnum<["neutral", "stone", "zinc", "gray"]>;
88
+ themeColor: z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>;
89
+ iconLibrary: z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>;
90
+ font: z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>;
91
+ menuAccent: z.ZodEnum<["subtle", "bold"]>;
92
+ menuColor: z.ZodEnum<["default", "inverted"]>;
93
+ radius: z.ZodEnum<["default", "none", "small", "medium", "large"]>;
82
94
  }, "strip", z.ZodTypeAny, {
83
- baseColor: "neutral" | "gray" | "zinc" | "slate" | "stone";
84
- themeColor: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet";
85
- menuAccent: "none" | "muted" | "primary";
86
- iconLibrary: "lucide" | "hugeicons";
87
- headingFont: "geist" | "inter" | "system";
88
- bodyFont: "geist" | "inter" | "system";
89
- borderRadius: "0" | "0.3" | "0.5" | "0.75" | "1.0";
90
- spacingScale: "default" | "compact" | "comfortable";
95
+ componentLibrary: "base" | "radix";
96
+ style: "vega" | "nova" | "maia" | "lyra" | "mira";
97
+ baseColor: "neutral" | "stone" | "zinc" | "gray";
98
+ themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
99
+ iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
100
+ font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
101
+ menuAccent: "subtle" | "bold";
102
+ menuColor: "default" | "inverted";
103
+ radius: "none" | "default" | "small" | "medium" | "large";
91
104
  }, {
92
- baseColor: "neutral" | "gray" | "zinc" | "slate" | "stone";
93
- themeColor: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet";
94
- menuAccent: "none" | "muted" | "primary";
95
- iconLibrary: "lucide" | "hugeicons";
96
- headingFont: "geist" | "inter" | "system";
97
- bodyFont: "geist" | "inter" | "system";
98
- borderRadius: "0" | "0.3" | "0.5" | "0.75" | "1.0";
99
- spacingScale: "default" | "compact" | "comfortable";
105
+ componentLibrary: "base" | "radix";
106
+ style: "vega" | "nova" | "maia" | "lyra" | "mira";
107
+ baseColor: "neutral" | "stone" | "zinc" | "gray";
108
+ themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
109
+ iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
110
+ font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
111
+ menuAccent: "subtle" | "bold";
112
+ menuColor: "default" | "inverted";
113
+ radius: "none" | "default" | "small" | "medium" | "large";
100
114
  }>;
101
115
  auth: z.ZodObject<{
102
116
  providers: z.ZodArray<z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>, "many">;
@@ -112,16 +126,20 @@ declare const ProjectConfigSchema: z.ZodObject<{
112
126
  analytics: z.ZodEnum<["none", "posthog", "vercel"]>;
113
127
  uploads: z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>;
114
128
  payments: z.ZodEnum<["none", "stripe", "polar"]>;
129
+ payloadStorage: z.ZodOptional<z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>>;
115
130
  }, "strip", z.ZodTypeAny, {
116
131
  analytics: "none" | "posthog" | "vercel";
117
132
  uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
118
133
  payments: "none" | "stripe" | "polar";
134
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
119
135
  }, {
120
136
  analytics: "none" | "posthog" | "vercel";
121
137
  uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
122
138
  payments: "none" | "stripe" | "polar";
139
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
123
140
  }>;
124
141
  addons: z.ZodArray<z.ZodEnum<["biome", "husky", "turborepo", "playwright", "vitest", "rate-limiting", "monitoring"]>, "many">;
142
+ optionalApps: z.ZodArray<z.ZodEnum<["design-system", "mobile", "admin"]>, "many">;
125
143
  packageManager: z.ZodEnum<["pnpm", "npm", "bun"]>;
126
144
  }, "strip", z.ZodTypeAny, {
127
145
  projectName: string;
@@ -129,14 +147,15 @@ declare const ProjectConfigSchema: z.ZodObject<{
129
147
  structure: "standalone" | "monorepo";
130
148
  marketingSite: "none" | "nextjs" | "payload";
131
149
  shadcn: {
132
- baseColor: "neutral" | "gray" | "zinc" | "slate" | "stone";
133
- themeColor: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet";
134
- menuAccent: "none" | "muted" | "primary";
135
- iconLibrary: "lucide" | "hugeicons";
136
- headingFont: "geist" | "inter" | "system";
137
- bodyFont: "geist" | "inter" | "system";
138
- borderRadius: "0" | "0.3" | "0.5" | "0.75" | "1.0";
139
- spacingScale: "default" | "compact" | "comfortable";
150
+ componentLibrary: "base" | "radix";
151
+ style: "vega" | "nova" | "maia" | "lyra" | "mira";
152
+ baseColor: "neutral" | "stone" | "zinc" | "gray";
153
+ themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
154
+ iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
155
+ font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
156
+ menuAccent: "subtle" | "bold";
157
+ menuColor: "default" | "inverted";
158
+ radius: "none" | "default" | "small" | "medium" | "large";
140
159
  };
141
160
  auth: {
142
161
  providers: ("github" | "google" | "discord" | "twitter" | "apple" | "microsoft" | "linkedin")[];
@@ -146,8 +165,10 @@ declare const ProjectConfigSchema: z.ZodObject<{
146
165
  analytics: "none" | "posthog" | "vercel";
147
166
  uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
148
167
  payments: "none" | "stripe" | "polar";
168
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
149
169
  };
150
170
  addons: ("biome" | "husky" | "turborepo" | "playwright" | "vitest" | "rate-limiting" | "monitoring")[];
171
+ optionalApps: ("design-system" | "mobile" | "admin")[];
151
172
  packageManager: "pnpm" | "npm" | "bun";
152
173
  }, {
153
174
  projectName: string;
@@ -155,14 +176,15 @@ declare const ProjectConfigSchema: z.ZodObject<{
155
176
  structure: "standalone" | "monorepo";
156
177
  marketingSite: "none" | "nextjs" | "payload";
157
178
  shadcn: {
158
- baseColor: "neutral" | "gray" | "zinc" | "slate" | "stone";
159
- themeColor: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet";
160
- menuAccent: "none" | "muted" | "primary";
161
- iconLibrary: "lucide" | "hugeicons";
162
- headingFont: "geist" | "inter" | "system";
163
- bodyFont: "geist" | "inter" | "system";
164
- borderRadius: "0" | "0.3" | "0.5" | "0.75" | "1.0";
165
- spacingScale: "default" | "compact" | "comfortable";
179
+ componentLibrary: "base" | "radix";
180
+ style: "vega" | "nova" | "maia" | "lyra" | "mira";
181
+ baseColor: "neutral" | "stone" | "zinc" | "gray";
182
+ themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
183
+ iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
184
+ font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
185
+ menuAccent: "subtle" | "bold";
186
+ menuColor: "default" | "inverted";
187
+ radius: "none" | "default" | "small" | "medium" | "large";
166
188
  };
167
189
  auth: {
168
190
  providers: ("github" | "google" | "discord" | "twitter" | "apple" | "microsoft" | "linkedin")[];
@@ -172,43 +194,51 @@ declare const ProjectConfigSchema: z.ZodObject<{
172
194
  analytics: "none" | "posthog" | "vercel";
173
195
  uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
174
196
  payments: "none" | "stripe" | "polar";
197
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
175
198
  };
176
199
  addons: ("biome" | "husky" | "turborepo" | "playwright" | "vitest" | "rate-limiting" | "monitoring")[];
200
+ optionalApps: ("design-system" | "mobile" | "admin")[];
177
201
  packageManager: "pnpm" | "npm" | "bun";
178
202
  }>;
179
203
  declare const CLIInputSchema: z.ZodObject<{
180
204
  projectName: z.ZodOptional<z.ZodString>;
181
205
  structure: z.ZodOptional<z.ZodEnum<["standalone", "monorepo"]>>;
182
206
  marketingSite: z.ZodOptional<z.ZodEnum<["none", "nextjs", "payload"]>>;
183
- baseColor: z.ZodOptional<z.ZodEnum<["neutral", "gray", "zinc", "slate", "stone"]>>;
184
- themeColor: z.ZodOptional<z.ZodEnum<["zinc", "slate", "stone", "gray", "neutral", "red", "rose", "orange", "green", "blue", "yellow", "violet"]>>;
185
- menuAccent: z.ZodOptional<z.ZodEnum<["none", "muted", "primary"]>>;
186
- iconLibrary: z.ZodOptional<z.ZodEnum<["lucide", "hugeicons"]>>;
187
- headingFont: z.ZodOptional<z.ZodEnum<["geist", "inter", "system"]>>;
188
- bodyFont: z.ZodOptional<z.ZodEnum<["geist", "inter", "system"]>>;
189
- borderRadius: z.ZodOptional<z.ZodEnum<["0", "0.3", "0.5", "0.75", "1.0"]>>;
190
- spacingScale: z.ZodOptional<z.ZodEnum<["default", "compact", "comfortable"]>>;
207
+ componentLibrary: z.ZodOptional<z.ZodEnum<["base", "radix"]>>;
208
+ style: z.ZodOptional<z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>>;
209
+ baseColor: z.ZodOptional<z.ZodEnum<["neutral", "stone", "zinc", "gray"]>>;
210
+ themeColor: z.ZodOptional<z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>>;
211
+ iconLibrary: z.ZodOptional<z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>>;
212
+ font: z.ZodOptional<z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>>;
213
+ menuAccent: z.ZodOptional<z.ZodEnum<["subtle", "bold"]>>;
214
+ menuColor: z.ZodOptional<z.ZodEnum<["default", "inverted"]>>;
215
+ radius: z.ZodOptional<z.ZodEnum<["default", "none", "small", "medium", "large"]>>;
191
216
  authProviders: z.ZodOptional<z.ZodArray<z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>, "many">>;
192
217
  organizations: z.ZodOptional<z.ZodBoolean>;
193
218
  analytics: z.ZodOptional<z.ZodEnum<["none", "posthog", "vercel"]>>;
194
219
  uploads: z.ZodOptional<z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>>;
220
+ payments: z.ZodOptional<z.ZodEnum<["none", "stripe", "polar"]>>;
221
+ payloadStorage: z.ZodOptional<z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>>;
195
222
  addons: z.ZodOptional<z.ZodArray<z.ZodEnum<["biome", "husky", "turborepo", "playwright", "vitest", "rate-limiting", "monitoring"]>, "many">>;
196
223
  git: z.ZodOptional<z.ZodBoolean>;
197
224
  packageManager: z.ZodOptional<z.ZodEnum<["pnpm", "npm", "bun"]>>;
198
225
  install: z.ZodOptional<z.ZodBoolean>;
199
226
  yes: z.ZodOptional<z.ZodBoolean>;
200
227
  }, "strip", z.ZodTypeAny, {
201
- baseColor?: "neutral" | "gray" | "zinc" | "slate" | "stone" | undefined;
202
- themeColor?: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet" | undefined;
203
- menuAccent?: "none" | "muted" | "primary" | undefined;
204
- iconLibrary?: "lucide" | "hugeicons" | undefined;
205
- headingFont?: "geist" | "inter" | "system" | undefined;
206
- bodyFont?: "geist" | "inter" | "system" | undefined;
207
- borderRadius?: "0" | "0.3" | "0.5" | "0.75" | "1.0" | undefined;
208
- spacingScale?: "default" | "compact" | "comfortable" | undefined;
228
+ componentLibrary?: "base" | "radix" | undefined;
229
+ style?: "vega" | "nova" | "maia" | "lyra" | "mira" | undefined;
230
+ baseColor?: "neutral" | "stone" | "zinc" | "gray" | undefined;
231
+ themeColor?: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow" | undefined;
232
+ iconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | undefined;
233
+ font?: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono" | undefined;
234
+ menuAccent?: "subtle" | "bold" | undefined;
235
+ menuColor?: "default" | "inverted" | undefined;
236
+ radius?: "none" | "default" | "small" | "medium" | "large" | undefined;
209
237
  organizations?: boolean | undefined;
210
238
  analytics?: "none" | "posthog" | "vercel" | undefined;
211
239
  uploads?: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob" | undefined;
240
+ payments?: "none" | "stripe" | "polar" | undefined;
241
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
212
242
  projectName?: string | undefined;
213
243
  structure?: "standalone" | "monorepo" | undefined;
214
244
  marketingSite?: "none" | "nextjs" | "payload" | undefined;
@@ -219,17 +249,20 @@ declare const CLIInputSchema: z.ZodObject<{
219
249
  install?: boolean | undefined;
220
250
  yes?: boolean | undefined;
221
251
  }, {
222
- baseColor?: "neutral" | "gray" | "zinc" | "slate" | "stone" | undefined;
223
- themeColor?: "neutral" | "gray" | "zinc" | "slate" | "stone" | "red" | "rose" | "orange" | "green" | "blue" | "yellow" | "violet" | undefined;
224
- menuAccent?: "none" | "muted" | "primary" | undefined;
225
- iconLibrary?: "lucide" | "hugeicons" | undefined;
226
- headingFont?: "geist" | "inter" | "system" | undefined;
227
- bodyFont?: "geist" | "inter" | "system" | undefined;
228
- borderRadius?: "0" | "0.3" | "0.5" | "0.75" | "1.0" | undefined;
229
- spacingScale?: "default" | "compact" | "comfortable" | undefined;
252
+ componentLibrary?: "base" | "radix" | undefined;
253
+ style?: "vega" | "nova" | "maia" | "lyra" | "mira" | undefined;
254
+ baseColor?: "neutral" | "stone" | "zinc" | "gray" | undefined;
255
+ themeColor?: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow" | undefined;
256
+ iconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | undefined;
257
+ font?: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono" | undefined;
258
+ menuAccent?: "subtle" | "bold" | undefined;
259
+ menuColor?: "default" | "inverted" | undefined;
260
+ radius?: "none" | "default" | "small" | "medium" | "large" | undefined;
230
261
  organizations?: boolean | undefined;
231
262
  analytics?: "none" | "posthog" | "vercel" | undefined;
232
263
  uploads?: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob" | undefined;
264
+ payments?: "none" | "stripe" | "polar" | undefined;
265
+ payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
233
266
  projectName?: string | undefined;
234
267
  structure?: "standalone" | "monorepo" | undefined;
235
268
  marketingSite?: "none" | "nextjs" | "payload" | undefined;
@@ -247,15 +280,20 @@ type MarketingSite = z.infer<typeof MarketingSiteSchema>;
247
280
  type AuthProvider = z.infer<typeof AuthProviderSchema>;
248
281
  type AnalyticsProvider = z.infer<typeof AnalyticsProviderSchema>;
249
282
  type UploadsProvider = z.infer<typeof UploadsProviderSchema>;
283
+ type PayloadStorageProvider = z.infer<typeof PayloadStorageProviderSchema>;
284
+ type PaymentProvider = z.infer<typeof PaymentProviderSchema>;
285
+ type ComponentLibrary = z.infer<typeof ComponentLibrarySchema>;
286
+ type ShadcnStyle = z.infer<typeof ShadcnStyleSchema>;
250
287
  type BaseColor = z.infer<typeof BaseColorSchema>;
251
288
  type ThemeColor = z.infer<typeof ThemeColorSchema>;
252
- type MenuAccent = z.infer<typeof MenuAccentSchema>;
253
289
  type IconLibrary = z.infer<typeof IconLibrarySchema>;
254
- type FontFamily = z.infer<typeof FontFamilySchema>;
255
- type BorderRadius = z.infer<typeof BorderRadiusSchema>;
256
- type SpacingScale = z.infer<typeof SpacingScaleSchema>;
290
+ type Font = z.infer<typeof FontSchema>;
291
+ type MenuAccent = z.infer<typeof MenuAccentSchema>;
292
+ type MenuColor = z.infer<typeof MenuColorSchema>;
293
+ type Radius = z.infer<typeof RadiusSchema>;
257
294
  type PackageManager = z.infer<typeof PackageManagerSchema>;
258
295
  type Addon = z.infer<typeof AddonSchema>;
296
+ type OptionalApp = z.infer<typeof OptionalAppSchema>;
259
297
  type DesignSystemConfig = z.infer<typeof DesignSystemConfigSchema>;
260
298
  type AuthConfig = z.infer<typeof AuthConfigSchema>;
261
299
  type IntegrationsConfig = z.infer<typeof IntegrationsConfigSchema>;
@@ -291,4 +329,4 @@ interface GeneratorResult {
291
329
  errors?: string[];
292
330
  }
293
331
 
294
- export { type Addon, AddonSchema, type AnalyticsProvider, AnalyticsProviderSchema, type AuthConfig, AuthConfigSchema, type AuthProvider, AuthProviderSchema, type BaseColor, BaseColorSchema, type BorderRadius, BorderRadiusSchema, type CLIInput, CLIInputSchema, DEFAULT_CONFIG, type DesignSystemConfig, DesignSystemConfigSchema, type FontFamily, FontFamilySchema, type GeneratorOptions, type GeneratorResult, type IconLibrary, IconLibrarySchema, type IntegrationsConfig, IntegrationsConfigSchema, type MarketingSite, MarketingSiteSchema, type MenuAccent, MenuAccentSchema, type PackageManager, PackageManagerSchema, type ProjectConfig, ProjectConfigSchema, type ProjectStructure, ProjectStructureSchema, type SpacingScale, SpacingScaleSchema, type ThemeColor, ThemeColorSchema, type UploadsProvider, UploadsProviderSchema, type VirtualDirectory, type VirtualFile, type VirtualFileTree, type VirtualNode };
332
+ export { type Addon, AddonSchema, type AnalyticsProvider, AnalyticsProviderSchema, type AuthConfig, AuthConfigSchema, type AuthProvider, AuthProviderSchema, type BaseColor, BaseColorSchema, type CLIInput, CLIInputSchema, type ComponentLibrary, ComponentLibrarySchema, DEFAULT_CONFIG, type DesignSystemConfig, DesignSystemConfigSchema, type Font, FontSchema, type GeneratorOptions, type GeneratorResult, type IconLibrary, IconLibrarySchema, type IntegrationsConfig, IntegrationsConfigSchema, type MarketingSite, MarketingSiteSchema, type MenuAccent, MenuAccentSchema, type MenuColor, MenuColorSchema, type OptionalApp, OptionalAppSchema, type PackageManager, PackageManagerSchema, type PayloadStorageProvider, PayloadStorageProviderSchema, type PaymentProvider, PaymentProviderSchema, type ProjectConfig, ProjectConfigSchema, type ProjectStructure, ProjectStructureSchema, type Radius, RadiusSchema, type ShadcnStyle, ShadcnStyleSchema, type ThemeColor, ThemeColorSchema, type UploadsProvider, UploadsProviderSchema, type VirtualDirectory, type VirtualFile, type VirtualFileTree, type VirtualNode };
package/dist/index.js CHANGED
@@ -20,27 +20,53 @@ var UploadsProviderSchema = z.enum([
20
20
  "s3",
21
21
  "vercel-blob"
22
22
  ]);
23
+ var PayloadStorageProviderSchema = z.enum([
24
+ "local",
25
+ "s3",
26
+ "vercel-blob",
27
+ "gcs",
28
+ "r2"
29
+ ]);
23
30
  var PaymentProviderSchema = z.enum(["none", "stripe", "polar"]);
24
- var BaseColorSchema = z.enum(["neutral", "gray", "zinc", "slate", "stone"]);
31
+ var ComponentLibrarySchema = z.enum(["base", "radix"]);
32
+ var ShadcnStyleSchema = z.enum(["vega", "nova", "maia", "lyra", "mira"]);
33
+ var BaseColorSchema = z.enum(["neutral", "stone", "zinc", "gray"]);
25
34
  var ThemeColorSchema = z.enum([
26
- "zinc",
27
- "slate",
28
- "stone",
29
- "gray",
30
35
  "neutral",
36
+ "amber",
37
+ "blue",
38
+ "cyan",
39
+ "emerald",
40
+ "fuchsia",
41
+ "green",
42
+ "indigo",
43
+ "lime",
44
+ "orange",
45
+ "pink",
46
+ "purple",
31
47
  "red",
32
48
  "rose",
33
- "orange",
34
- "green",
35
- "blue",
36
- "yellow",
37
- "violet"
49
+ "sky",
50
+ "teal",
51
+ "violet",
52
+ "yellow"
38
53
  ]);
39
- var MenuAccentSchema = z.enum(["none", "muted", "primary"]);
40
- var IconLibrarySchema = z.enum(["lucide", "hugeicons"]);
41
- var FontFamilySchema = z.enum(["geist", "inter", "system"]);
42
- var BorderRadiusSchema = z.enum(["0", "0.3", "0.5", "0.75", "1.0"]);
43
- var SpacingScaleSchema = z.enum(["default", "compact", "comfortable"]);
54
+ var IconLibrarySchema = z.enum(["lucide", "tabler", "hugeicons", "phosphor"]);
55
+ var FontSchema = z.enum([
56
+ "inter",
57
+ "noto-sans",
58
+ "nunito-sans",
59
+ "figtree",
60
+ "roboto",
61
+ "raleway",
62
+ "dm-sans",
63
+ "public-sans",
64
+ "outfit",
65
+ "jetbrains-mono"
66
+ ]);
67
+ var MenuAccentSchema = z.enum(["subtle", "bold"]);
68
+ var MenuColorSchema = z.enum(["default", "inverted"]);
69
+ var RadiusSchema = z.enum(["default", "none", "small", "medium", "large"]);
44
70
  var PackageManagerSchema = z.enum(["pnpm", "npm", "bun"]);
45
71
  var AddonSchema = z.enum([
46
72
  "biome",
@@ -51,15 +77,17 @@ var AddonSchema = z.enum([
51
77
  "rate-limiting",
52
78
  "monitoring"
53
79
  ]);
80
+ var OptionalAppSchema = z.enum(["design-system", "mobile", "admin"]);
54
81
  var DesignSystemConfigSchema = z.object({
82
+ componentLibrary: ComponentLibrarySchema,
83
+ style: ShadcnStyleSchema,
55
84
  baseColor: BaseColorSchema,
56
85
  themeColor: ThemeColorSchema,
57
- menuAccent: MenuAccentSchema,
58
86
  iconLibrary: IconLibrarySchema,
59
- headingFont: FontFamilySchema,
60
- bodyFont: FontFamilySchema,
61
- borderRadius: BorderRadiusSchema,
62
- spacingScale: SpacingScaleSchema
87
+ font: FontSchema,
88
+ menuAccent: MenuAccentSchema,
89
+ menuColor: MenuColorSchema,
90
+ radius: RadiusSchema
63
91
  });
64
92
  var AuthConfigSchema = z.object({
65
93
  providers: z.array(AuthProviderSchema),
@@ -68,7 +96,8 @@ var AuthConfigSchema = z.object({
68
96
  var IntegrationsConfigSchema = z.object({
69
97
  analytics: AnalyticsProviderSchema,
70
98
  uploads: UploadsProviderSchema,
71
- payments: PaymentProviderSchema
99
+ payments: PaymentProviderSchema,
100
+ payloadStorage: PayloadStorageProviderSchema.optional()
72
101
  });
73
102
  var ProjectConfigSchema = z.object({
74
103
  // Basic info
@@ -85,6 +114,8 @@ var ProjectConfigSchema = z.object({
85
114
  integrations: IntegrationsConfigSchema,
86
115
  // Addons
87
116
  addons: z.array(AddonSchema),
117
+ // Optional apps (monorepo only)
118
+ optionalApps: z.array(OptionalAppSchema),
88
119
  // Setup options
89
120
  packageManager: PackageManagerSchema
90
121
  });
@@ -92,18 +123,24 @@ var CLIInputSchema = z.object({
92
123
  projectName: z.string().optional(),
93
124
  structure: ProjectStructureSchema.optional(),
94
125
  marketingSite: MarketingSiteSchema.optional(),
126
+ // shadcn v4 options
127
+ componentLibrary: ComponentLibrarySchema.optional(),
128
+ style: ShadcnStyleSchema.optional(),
95
129
  baseColor: BaseColorSchema.optional(),
96
130
  themeColor: ThemeColorSchema.optional(),
97
- menuAccent: MenuAccentSchema.optional(),
98
131
  iconLibrary: IconLibrarySchema.optional(),
99
- headingFont: FontFamilySchema.optional(),
100
- bodyFont: FontFamilySchema.optional(),
101
- borderRadius: BorderRadiusSchema.optional(),
102
- spacingScale: SpacingScaleSchema.optional(),
132
+ font: FontSchema.optional(),
133
+ menuAccent: MenuAccentSchema.optional(),
134
+ menuColor: MenuColorSchema.optional(),
135
+ radius: RadiusSchema.optional(),
136
+ // Auth
103
137
  authProviders: z.array(AuthProviderSchema).optional(),
104
138
  organizations: z.boolean().optional(),
139
+ // Integrations
105
140
  analytics: AnalyticsProviderSchema.optional(),
106
141
  uploads: UploadsProviderSchema.optional(),
142
+ payments: PaymentProviderSchema.optional(),
143
+ payloadStorage: PayloadStorageProviderSchema.optional(),
107
144
  addons: z.array(AddonSchema).optional(),
108
145
  git: z.boolean().optional(),
109
146
  packageManager: PackageManagerSchema.optional(),
@@ -117,14 +154,15 @@ var DEFAULT_CONFIG = {
117
154
  structure: "standalone",
118
155
  marketingSite: "none",
119
156
  shadcn: {
157
+ componentLibrary: "base",
158
+ style: "nova",
120
159
  baseColor: "neutral",
121
- themeColor: "zinc",
122
- menuAccent: "muted",
123
- iconLibrary: "lucide",
124
- headingFont: "geist",
125
- bodyFont: "geist",
126
- borderRadius: "0.5",
127
- spacingScale: "default"
160
+ themeColor: "neutral",
161
+ iconLibrary: "hugeicons",
162
+ font: "inter",
163
+ menuAccent: "subtle",
164
+ menuColor: "default",
165
+ radius: "default"
128
166
  },
129
167
  auth: {
130
168
  providers: ["github", "google"],
@@ -136,6 +174,7 @@ var DEFAULT_CONFIG = {
136
174
  payments: "none"
137
175
  },
138
176
  addons: [],
177
+ optionalApps: [],
139
178
  packageManager: "pnpm"
140
179
  };
141
180
  export {
@@ -144,19 +183,24 @@ export {
144
183
  AuthConfigSchema,
145
184
  AuthProviderSchema,
146
185
  BaseColorSchema,
147
- BorderRadiusSchema,
148
186
  CLIInputSchema,
187
+ ComponentLibrarySchema,
149
188
  DEFAULT_CONFIG,
150
189
  DesignSystemConfigSchema,
151
- FontFamilySchema,
190
+ FontSchema,
152
191
  IconLibrarySchema,
153
192
  IntegrationsConfigSchema,
154
193
  MarketingSiteSchema,
155
194
  MenuAccentSchema,
195
+ MenuColorSchema,
196
+ OptionalAppSchema,
156
197
  PackageManagerSchema,
198
+ PayloadStorageProviderSchema,
199
+ PaymentProviderSchema,
157
200
  ProjectConfigSchema,
158
201
  ProjectStructureSchema,
159
- SpacingScaleSchema,
202
+ RadiusSchema,
203
+ ShadcnStyleSchema,
160
204
  ThemeColorSchema,
161
205
  UploadsProviderSchema
162
206
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kofi-stack-types",
3
- "version": "2.0.23",
3
+ "version": "2.1.36",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -10,6 +10,11 @@
10
10
  "types": "./dist/index.d.ts"
11
11
  }
12
12
  },
13
+ "scripts": {
14
+ "build": "tsup src/index.ts --format esm --dts",
15
+ "dev": "tsup src/index.ts --format esm --dts --watch",
16
+ "typecheck": "tsc --noEmit"
17
+ },
13
18
  "dependencies": {
14
19
  "zod": "^3.23.0"
15
20
  },
@@ -17,10 +22,5 @@
17
22
  "@types/node": "^20.0.0",
18
23
  "tsup": "^8.0.0",
19
24
  "typescript": "^5.0.0"
20
- },
21
- "scripts": {
22
- "build": "tsup src/index.ts --format esm --dts",
23
- "dev": "tsup src/index.ts --format esm --dts --watch",
24
- "typecheck": "tsc --noEmit"
25
25
  }
26
- }
26
+ }
package/src/index.ts CHANGED
@@ -5,15 +5,22 @@ export {
5
5
  AuthProviderSchema,
6
6
  AnalyticsProviderSchema,
7
7
  UploadsProviderSchema,
8
+ PayloadStorageProviderSchema,
9
+ PaymentProviderSchema,
10
+ // shadcn v4 schemas
11
+ ComponentLibrarySchema,
12
+ ShadcnStyleSchema,
8
13
  BaseColorSchema,
9
14
  ThemeColorSchema,
10
- MenuAccentSchema,
11
15
  IconLibrarySchema,
12
- FontFamilySchema,
13
- BorderRadiusSchema,
14
- SpacingScaleSchema,
16
+ FontSchema,
17
+ MenuAccentSchema,
18
+ MenuColorSchema,
19
+ RadiusSchema,
20
+ // Config schemas
15
21
  PackageManagerSchema,
16
22
  AddonSchema,
23
+ OptionalAppSchema,
17
24
  DesignSystemConfigSchema,
18
25
  AuthConfigSchema,
19
26
  IntegrationsConfigSchema,
@@ -29,15 +36,22 @@ export type {
29
36
  AuthProvider,
30
37
  AnalyticsProvider,
31
38
  UploadsProvider,
39
+ PayloadStorageProvider,
40
+ PaymentProvider,
41
+ // shadcn v4 types
42
+ ComponentLibrary,
43
+ ShadcnStyle,
32
44
  BaseColor,
33
45
  ThemeColor,
34
- MenuAccent,
35
46
  IconLibrary,
36
- FontFamily,
37
- BorderRadius,
38
- SpacingScale,
47
+ Font,
48
+ MenuAccent,
49
+ MenuColor,
50
+ Radius,
51
+ // Config types
39
52
  PackageManager,
40
53
  Addon,
54
+ OptionalApp,
41
55
  DesignSystemConfig,
42
56
  AuthConfig,
43
57
  IntegrationsConfig,
package/src/schemas.ts CHANGED
@@ -20,7 +20,7 @@ export const AuthProviderSchema = z.enum([
20
20
  // Analytics providers
21
21
  export const AnalyticsProviderSchema = z.enum(['none', 'posthog', 'vercel'])
22
22
 
23
- // Upload/Storage providers
23
+ // Upload/Storage providers (for web app - Convex-based)
24
24
  export const UploadsProviderSchema = z.enum([
25
25
  'none',
26
26
  'convex-fs',
@@ -30,43 +30,78 @@ export const UploadsProviderSchema = z.enum([
30
30
  'vercel-blob',
31
31
  ])
32
32
 
33
+ // Payload CMS Storage providers
34
+ export const PayloadStorageProviderSchema = z.enum([
35
+ 'local',
36
+ 's3',
37
+ 'vercel-blob',
38
+ 'gcs',
39
+ 'r2',
40
+ ])
41
+
33
42
  // Payment providers
34
43
  export const PaymentProviderSchema = z.enum(['none', 'stripe', 'polar'])
35
44
 
45
+ // ============================================
46
+ // shadcn UI v4 Design System Options
47
+ // ============================================
48
+
49
+ // Component library (base or radix primitives)
50
+ export const ComponentLibrarySchema = z.enum(['base', 'radix'])
36
51
 
37
- // Base color
38
- export const BaseColorSchema = z.enum(['neutral', 'gray', 'zinc', 'slate', 'stone'])
52
+ // Style presets (shadcn v4)
53
+ export const ShadcnStyleSchema = z.enum(['vega', 'nova', 'maia', 'lyra', 'mira'])
39
54
 
40
- // Theme color
55
+ // Base color (background/surface colors)
56
+ export const BaseColorSchema = z.enum(['neutral', 'stone', 'zinc', 'gray'])
57
+
58
+ // Theme color (accent/primary color)
41
59
  export const ThemeColorSchema = z.enum([
42
- 'zinc',
43
- 'slate',
44
- 'stone',
45
- 'gray',
46
60
  'neutral',
61
+ 'amber',
62
+ 'blue',
63
+ 'cyan',
64
+ 'emerald',
65
+ 'fuchsia',
66
+ 'green',
67
+ 'indigo',
68
+ 'lime',
69
+ 'orange',
70
+ 'pink',
71
+ 'purple',
47
72
  'red',
48
73
  'rose',
49
- 'orange',
50
- 'green',
51
- 'blue',
52
- 'yellow',
74
+ 'sky',
75
+ 'teal',
53
76
  'violet',
77
+ 'yellow',
54
78
  ])
55
79
 
56
- // Menu accent
57
- export const MenuAccentSchema = z.enum(['none', 'muted', 'primary'])
58
-
59
80
  // Icon library
60
- export const IconLibrarySchema = z.enum(['lucide', 'hugeicons'])
81
+ export const IconLibrarySchema = z.enum(['lucide', 'tabler', 'hugeicons', 'phosphor'])
82
+
83
+ // Font
84
+ export const FontSchema = z.enum([
85
+ 'inter',
86
+ 'noto-sans',
87
+ 'nunito-sans',
88
+ 'figtree',
89
+ 'roboto',
90
+ 'raleway',
91
+ 'dm-sans',
92
+ 'public-sans',
93
+ 'outfit',
94
+ 'jetbrains-mono',
95
+ ])
61
96
 
62
- // Font family
63
- export const FontFamilySchema = z.enum(['geist', 'inter', 'system'])
97
+ // Menu accent
98
+ export const MenuAccentSchema = z.enum(['subtle', 'bold'])
64
99
 
65
- // Border radius
66
- export const BorderRadiusSchema = z.enum(['0', '0.3', '0.5', '0.75', '1.0'])
100
+ // Menu color
101
+ export const MenuColorSchema = z.enum(['default', 'inverted'])
67
102
 
68
- // Spacing scale
69
- export const SpacingScaleSchema = z.enum(['default', 'compact', 'comfortable'])
103
+ // Border radius
104
+ export const RadiusSchema = z.enum(['default', 'none', 'small', 'medium', 'large'])
70
105
 
71
106
  // Package manager
72
107
  export const PackageManagerSchema = z.enum(['pnpm', 'npm', 'bun'])
@@ -82,16 +117,20 @@ export const AddonSchema = z.enum([
82
117
  'monitoring',
83
118
  ])
84
119
 
85
- // Design system configuration
120
+ // Optional apps (monorepo only)
121
+ export const OptionalAppSchema = z.enum(['design-system', 'mobile', 'admin'])
122
+
123
+ // Design system configuration (shadcn v4)
86
124
  export const DesignSystemConfigSchema = z.object({
125
+ componentLibrary: ComponentLibrarySchema,
126
+ style: ShadcnStyleSchema,
87
127
  baseColor: BaseColorSchema,
88
128
  themeColor: ThemeColorSchema,
89
- menuAccent: MenuAccentSchema,
90
129
  iconLibrary: IconLibrarySchema,
91
- headingFont: FontFamilySchema,
92
- bodyFont: FontFamilySchema,
93
- borderRadius: BorderRadiusSchema,
94
- spacingScale: SpacingScaleSchema,
130
+ font: FontSchema,
131
+ menuAccent: MenuAccentSchema,
132
+ menuColor: MenuColorSchema,
133
+ radius: RadiusSchema,
95
134
  })
96
135
 
97
136
  // Auth configuration
@@ -105,6 +144,7 @@ export const IntegrationsConfigSchema = z.object({
105
144
  analytics: AnalyticsProviderSchema,
106
145
  uploads: UploadsProviderSchema,
107
146
  payments: PaymentProviderSchema,
147
+ payloadStorage: PayloadStorageProviderSchema.optional(),
108
148
  })
109
149
 
110
150
  // Complete project configuration
@@ -129,6 +169,9 @@ export const ProjectConfigSchema = z.object({
129
169
  // Addons
130
170
  addons: z.array(AddonSchema),
131
171
 
172
+ // Optional apps (monorepo only)
173
+ optionalApps: z.array(OptionalAppSchema),
174
+
132
175
  // Setup options
133
176
  packageManager: PackageManagerSchema,
134
177
  })
@@ -138,18 +181,24 @@ export const CLIInputSchema = z.object({
138
181
  projectName: z.string().optional(),
139
182
  structure: ProjectStructureSchema.optional(),
140
183
  marketingSite: MarketingSiteSchema.optional(),
184
+ // shadcn v4 options
185
+ componentLibrary: ComponentLibrarySchema.optional(),
186
+ style: ShadcnStyleSchema.optional(),
141
187
  baseColor: BaseColorSchema.optional(),
142
188
  themeColor: ThemeColorSchema.optional(),
143
- menuAccent: MenuAccentSchema.optional(),
144
189
  iconLibrary: IconLibrarySchema.optional(),
145
- headingFont: FontFamilySchema.optional(),
146
- bodyFont: FontFamilySchema.optional(),
147
- borderRadius: BorderRadiusSchema.optional(),
148
- spacingScale: SpacingScaleSchema.optional(),
190
+ font: FontSchema.optional(),
191
+ menuAccent: MenuAccentSchema.optional(),
192
+ menuColor: MenuColorSchema.optional(),
193
+ radius: RadiusSchema.optional(),
194
+ // Auth
149
195
  authProviders: z.array(AuthProviderSchema).optional(),
150
196
  organizations: z.boolean().optional(),
197
+ // Integrations
151
198
  analytics: AnalyticsProviderSchema.optional(),
152
199
  uploads: UploadsProviderSchema.optional(),
200
+ payments: PaymentProviderSchema.optional(),
201
+ payloadStorage: PayloadStorageProviderSchema.optional(),
153
202
  addons: z.array(AddonSchema).optional(),
154
203
  git: z.boolean().optional(),
155
204
  packageManager: PackageManagerSchema.optional(),
@@ -164,14 +213,15 @@ export const DEFAULT_CONFIG: z.infer<typeof ProjectConfigSchema> = {
164
213
  structure: 'standalone',
165
214
  marketingSite: 'none',
166
215
  shadcn: {
216
+ componentLibrary: 'base',
217
+ style: 'nova',
167
218
  baseColor: 'neutral',
168
- themeColor: 'zinc',
169
- menuAccent: 'muted',
170
- iconLibrary: 'lucide',
171
- headingFont: 'geist',
172
- bodyFont: 'geist',
173
- borderRadius: '0.5',
174
- spacingScale: 'default',
219
+ themeColor: 'neutral',
220
+ iconLibrary: 'hugeicons',
221
+ font: 'inter',
222
+ menuAccent: 'subtle',
223
+ menuColor: 'default',
224
+ radius: 'default',
175
225
  },
176
226
  auth: {
177
227
  providers: ['github', 'google'],
@@ -183,5 +233,6 @@ export const DEFAULT_CONFIG: z.infer<typeof ProjectConfigSchema> = {
183
233
  payments: 'none',
184
234
  },
185
235
  addons: [],
236
+ optionalApps: [],
186
237
  packageManager: 'pnpm',
187
238
  }
package/src/types.ts CHANGED
@@ -5,16 +5,21 @@ import type {
5
5
  AuthProviderSchema,
6
6
  AnalyticsProviderSchema,
7
7
  UploadsProviderSchema,
8
+ PayloadStorageProviderSchema,
8
9
  PaymentProviderSchema,
10
+ // shadcn v4 schemas
11
+ ComponentLibrarySchema,
12
+ ShadcnStyleSchema,
9
13
  BaseColorSchema,
10
14
  ThemeColorSchema,
11
- MenuAccentSchema,
12
15
  IconLibrarySchema,
13
- FontFamilySchema,
14
- BorderRadiusSchema,
15
- SpacingScaleSchema,
16
+ FontSchema,
17
+ MenuAccentSchema,
18
+ MenuColorSchema,
19
+ RadiusSchema,
16
20
  PackageManagerSchema,
17
21
  AddonSchema,
22
+ OptionalAppSchema,
18
23
  DesignSystemConfigSchema,
19
24
  AuthConfigSchema,
20
25
  IntegrationsConfigSchema,
@@ -28,16 +33,23 @@ export type MarketingSite = z.infer<typeof MarketingSiteSchema>
28
33
  export type AuthProvider = z.infer<typeof AuthProviderSchema>
29
34
  export type AnalyticsProvider = z.infer<typeof AnalyticsProviderSchema>
30
35
  export type UploadsProvider = z.infer<typeof UploadsProviderSchema>
36
+ export type PayloadStorageProvider = z.infer<typeof PayloadStorageProviderSchema>
31
37
  export type PaymentProvider = z.infer<typeof PaymentProviderSchema>
38
+
39
+ // shadcn v4 types
40
+ export type ComponentLibrary = z.infer<typeof ComponentLibrarySchema>
41
+ export type ShadcnStyle = z.infer<typeof ShadcnStyleSchema>
32
42
  export type BaseColor = z.infer<typeof BaseColorSchema>
33
43
  export type ThemeColor = z.infer<typeof ThemeColorSchema>
34
- export type MenuAccent = z.infer<typeof MenuAccentSchema>
35
44
  export type IconLibrary = z.infer<typeof IconLibrarySchema>
36
- export type FontFamily = z.infer<typeof FontFamilySchema>
37
- export type BorderRadius = z.infer<typeof BorderRadiusSchema>
38
- export type SpacingScale = z.infer<typeof SpacingScaleSchema>
45
+ export type Font = z.infer<typeof FontSchema>
46
+ export type MenuAccent = z.infer<typeof MenuAccentSchema>
47
+ export type MenuColor = z.infer<typeof MenuColorSchema>
48
+ export type Radius = z.infer<typeof RadiusSchema>
49
+
39
50
  export type PackageManager = z.infer<typeof PackageManagerSchema>
40
51
  export type Addon = z.infer<typeof AddonSchema>
52
+ export type OptionalApp = z.infer<typeof OptionalAppSchema>
41
53
  export type DesignSystemConfig = z.infer<typeof DesignSystemConfigSchema>
42
54
  export type AuthConfig = z.infer<typeof AuthConfigSchema>
43
55
  export type IntegrationsConfig = z.infer<typeof IntegrationsConfigSchema>