@timbenniks/contentstack-platform-app-scaffold 0.1.5 → 0.1.7

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 ADDED
@@ -0,0 +1,141 @@
1
+ # @timbenniks/contentstack-platform-app-scaffold
2
+
3
+ CLI tool to scaffold full-stack Contentstack apps using the [Platform SDK](https://www.npmjs.com/package/@timbenniks/contentstack-platform-sdk). It creates a production-ready Next.js project with shadcn/ui, Tailwind v4, and Contentstack design tokens — wired up with CMA proxies, OAuth, Launch, and Brand Kit support.
4
+
5
+ ## What it does
6
+
7
+ 1. Runs `create-next-app@latest` with TypeScript, Tailwind v4, and App Router
8
+ 2. Initializes [shadcn/ui](https://ui.shadcn.com) with Button and Card components
9
+ 3. Adds `@timbenniks/contentstack-platform-sdk` as a dependency
10
+ 4. Overlays Contentstack-specific files based on the features you select:
11
+ - **CMA** — Server proxy at `/api/cma`, entries and assets pages with React hooks
12
+ - **OAuth** — Auth.js v5 integration with `createContentstackAuth`, sign-in/sign-out UI
13
+ - **Launch** — Server proxy at `/api/launch`, projects page
14
+ - **Brand Kit** — Server proxy at `/api/brandkit`, brand kits page
15
+ 5. Maps the SDK's Venus Design System tokens to shadcn CSS variables via `tokens.css`
16
+
17
+ ## Installation
18
+
19
+ ### As a Contentstack CLI plugin
20
+
21
+ ```bash
22
+ csdx plugins:install @timbenniks/contentstack-platform-app-scaffold
23
+ ```
24
+
25
+ Then run:
26
+
27
+ ```bash
28
+ csdx scaffold my-app
29
+ ```
30
+
31
+ ### Standalone with npx
32
+
33
+ ```bash
34
+ npx @timbenniks/contentstack-platform-app-scaffold scaffold my-app
35
+ ```
36
+
37
+ ### Global install
38
+
39
+ ```bash
40
+ npm install -g @timbenniks/contentstack-platform-app-scaffold
41
+ ```
42
+
43
+ ## Usage
44
+
45
+ ### Interactive mode
46
+
47
+ ```bash
48
+ csdx scaffold my-app
49
+ ```
50
+
51
+ The CLI will prompt you for:
52
+ - **Framework** — Next.js (more coming soon)
53
+ - **Region** — `us`, `eu`, `au`, `azure-na`, `azure-eu`, `gcp-na`, `gcp-eu`
54
+ - **Features** — CMA, OAuth, Launch, Brand Kit
55
+ - **OAuth scopes** — if OAuth is selected
56
+ - **Package manager** — npm, yarn, or pnpm
57
+
58
+ ### Non-interactive mode
59
+
60
+ Pass all options as flags to skip prompts:
61
+
62
+ ```bash
63
+ csdx scaffold my-app \
64
+ --framework nextjs \
65
+ --region eu \
66
+ --features cma,oauth \
67
+ --scopes "user:read,cm.entries.management:read,cm.assets.management:read" \
68
+ --package-manager pnpm
69
+ ```
70
+
71
+ ### Flags
72
+
73
+ | Flag | Description | Default |
74
+ |------|-------------|---------|
75
+ | `--framework` | Framework (`nextjs`) | prompted |
76
+ | `--region` | Contentstack region | prompted |
77
+ | `--features` | Comma-separated: `cma`, `oauth`, `launch`, `brandkit` | prompted |
78
+ | `--scopes` | Comma-separated OAuth scopes | prompted if oauth selected |
79
+ | `--package-manager` | `npm`, `yarn`, or `pnpm` | prompted |
80
+ | `--no-install` | Skip dependency installation | `false` |
81
+
82
+ ## Generated project structure
83
+
84
+ With all features enabled (`cma,oauth,launch,brandkit`):
85
+
86
+ ```
87
+ my-app/
88
+ ├── app/
89
+ │ ├── api/
90
+ │ │ ├── auth/[...nextauth]/route.ts # OAuth handlers
91
+ │ │ ├── cma/[...path]/route.ts # CMA proxy
92
+ │ │ ├── launch/[...path]/route.ts # Launch proxy
93
+ │ │ └── brandkit/[...path]/route.ts # Brand Kit proxy
94
+ │ ├── entries/page.tsx # Entries page (useEntries hook)
95
+ │ ├── assets/page.tsx # Assets page (useAssets hook)
96
+ │ ├── launch/page.tsx # Launch projects page
97
+ │ ├── brandkit/page.tsx # Brand Kits page
98
+ │ ├── globals.css # shadcn + Venus Design System tokens
99
+ │ ├── layout.tsx # Root layout with Providers
100
+ │ ├── page.tsx # Home with sign-in/sign-out
101
+ │ └── providers.tsx # ContentstackProvider wrapper
102
+ ├── lib/
103
+ │ └── auth.ts # createContentstackAuth config
104
+ ├── types/
105
+ │ └── next-auth.d.ts # Session type augmentation
106
+ ├── .env.example # All required env vars
107
+ ├── next.config.ts # SDK transpile config
108
+ └── package.json
109
+ ```
110
+
111
+ ## Environment variables
112
+
113
+ After scaffolding, copy `.env.example` to `.env.local` and fill in your credentials:
114
+
115
+ ```bash
116
+ cp .env.example .env.local
117
+ ```
118
+
119
+ The required variables depend on your feature selection:
120
+
121
+ | Variable | Required when |
122
+ |----------|--------------|
123
+ | `CONTENTSTACK_REGION` | Always |
124
+ | `CONTENTSTACK_API_KEY` | Always |
125
+ | `CONTENTSTACK_MANAGEMENT_TOKEN` | CMA without OAuth |
126
+ | `CONTENTSTACK_APP_ID` | OAuth |
127
+ | `CONTENTSTACK_CLIENT_ID` | OAuth |
128
+ | `CONTENTSTACK_CLIENT_SECRET` | OAuth |
129
+ | `AUTH_SECRET` | OAuth |
130
+ | `CONTENTSTACK_ORGANIZATION_UID` | Launch or Brand Kit |
131
+ | `CONTENTSTACK_AUTHTOKEN` | Launch/Brand Kit without OAuth |
132
+ | `CONTENTSTACK_BRAND_KIT_UID` | Brand Kit |
133
+
134
+ ## Requirements
135
+
136
+ - Node.js >= 18
137
+ - npm, yarn, or pnpm
138
+
139
+ ## License
140
+
141
+ MIT
@@ -10,6 +10,7 @@ export default class Scaffold extends Command {
10
10
  region: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
11
  features: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
12
  scopes: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ theme: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
14
  "package-manager": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
15
  "no-install": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAoBlD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAC,WAAW,SAAuD;IAEzE,MAAM,CAAC,QAAQ,WAId;IAED,MAAM,CAAC,IAAI;;MAKV;IAED,MAAM,CAAC,KAAK;;;;;;;MAuBX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB3B"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AA0BlD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAC,WAAW,SAAuD;IAEzE,MAAM,CAAC,QAAQ,WAId;IAED,MAAM,CAAC,IAAI;;MAKV;IAED,MAAM,CAAC,KAAK;;;;;;;;MA2BX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3B"}
@@ -44,6 +44,10 @@ class Scaffold extends core_1.Command {
44
44
  scopes: core_1.Flags.string({
45
45
  description: "Comma-separated OAuth scopes",
46
46
  }),
47
+ theme: core_1.Flags.string({
48
+ description: `Theme mode (${types_1.VALID_THEME_MODES.join("|")})`,
49
+ options: [...types_1.VALID_THEME_MODES],
50
+ }),
47
51
  "package-manager": core_1.Flags.string({
48
52
  description: `Package manager (${types_1.VALID_PACKAGE_MANAGERS.join("|")})`,
49
53
  options: types_1.VALID_PACKAGE_MANAGERS,
@@ -61,6 +65,7 @@ class Scaffold extends core_1.Command {
61
65
  region: flags.region,
62
66
  features: flags.features ? parseFeatures(flags.features) : undefined,
63
67
  scopes: flags.scopes ? parseScopes(flags.scopes) : undefined,
68
+ theme: flags.theme,
64
69
  packageManager: flags["package-manager"],
65
70
  install: !flags["no-install"],
66
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/services/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAKV,eAAe,EAChB,MAAM,UAAU,CAAA;AAyCjB,wBAAsB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAyFjF"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/services/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAKV,eAAe,EAEhB,MAAM,UAAU,CAAA;AAmMjB,wBAAsB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CA8GjF"}
@@ -52,25 +52,169 @@ const FEATURE_LABELS = {
52
52
  brandkit: "Brand Kit AI",
53
53
  };
54
54
  const OAUTH_SCOPES = [
55
- { value: "user:read", label: "user:read", hint: "Read user profile" },
56
- { value: "cm.content-types:read", label: "cm.content-types:read", hint: "Read content types" },
55
+ // User (always shown when oauth is selected)
56
+ {
57
+ value: "user:read",
58
+ label: "user:read",
59
+ hint: "View user details (required)",
60
+ feature: "oauth",
61
+ },
62
+ // Content types
63
+ {
64
+ value: "cm.content-types.management:read",
65
+ label: "cm.content-types.management:read",
66
+ hint: "View all content types",
67
+ feature: "cma",
68
+ },
69
+ {
70
+ value: "cm.content-types.management:write",
71
+ label: "cm.content-types.management:write",
72
+ hint: "Create, update, remove content types",
73
+ feature: "cma",
74
+ },
75
+ // Entries
57
76
  {
58
77
  value: "cm.entries.management:read",
59
78
  label: "cm.entries.management:read",
60
- hint: "Read entries",
79
+ hint: "View all entries",
80
+ feature: "cma",
61
81
  },
62
82
  {
63
83
  value: "cm.entries.management:write",
64
84
  label: "cm.entries.management:write",
65
- hint: "Write entries",
85
+ hint: "Create, update, remove entries",
86
+ feature: "cma",
87
+ },
88
+ {
89
+ value: "cm.entry:publish",
90
+ label: "cm.entry:publish",
91
+ hint: "Publish an entry",
92
+ feature: "cma",
93
+ },
94
+ {
95
+ value: "cm.entry:unpublish",
96
+ label: "cm.entry:unpublish",
97
+ hint: "Unpublish an entry",
98
+ feature: "cma",
99
+ },
100
+ // Assets
101
+ {
102
+ value: "cm.assets.management:read",
103
+ label: "cm.assets.management:read",
104
+ hint: "View all assets",
105
+ feature: "cma",
66
106
  },
67
- { value: "cm.assets.management:read", label: "cm.assets.management:read", hint: "Read assets" },
68
107
  {
69
108
  value: "cm.assets.management:write",
70
109
  label: "cm.assets.management:write",
71
- hint: "Write assets",
110
+ hint: "Create, update, remove assets",
111
+ feature: "cma",
112
+ },
113
+ {
114
+ value: "cm.asset:publish",
115
+ label: "cm.asset:publish",
116
+ hint: "Publish an asset",
117
+ feature: "cma",
118
+ },
119
+ {
120
+ value: "cm.asset:unpublish",
121
+ label: "cm.asset:unpublish",
122
+ hint: "Unpublish an asset",
123
+ feature: "cma",
124
+ },
125
+ // Taxonomies
126
+ {
127
+ value: "cm.taxonomies.management:read",
128
+ label: "cm.taxonomies.management:read",
129
+ hint: "View all taxonomies",
130
+ feature: "cma",
131
+ },
132
+ {
133
+ value: "cm.taxonomies.management:write",
134
+ label: "cm.taxonomies.management:write",
135
+ hint: "Create, update, delete taxonomies",
136
+ feature: "cma",
137
+ },
138
+ {
139
+ value: "cm.taxonomy.terms:read",
140
+ label: "cm.taxonomy.terms:read",
141
+ hint: "View taxonomy terms",
142
+ feature: "cma",
143
+ },
144
+ {
145
+ value: "cm.taxonomy.terms:write",
146
+ label: "cm.taxonomy.terms:write",
147
+ hint: "Create, update, delete taxonomy terms",
148
+ feature: "cma",
149
+ },
150
+ // Environments & languages
151
+ {
152
+ value: "cm.environments.management:read",
153
+ label: "cm.environments.management:read",
154
+ hint: "View all environments",
155
+ feature: "cma",
156
+ },
157
+ {
158
+ value: "cm.languages.management:read",
159
+ label: "cm.languages.management:read",
160
+ hint: "View all languages",
161
+ feature: "cma",
162
+ },
163
+ // Workflows & releases
164
+ {
165
+ value: "cm.workflows.management:read",
166
+ label: "cm.workflows.management:read",
167
+ hint: "View all workflows",
168
+ feature: "cma",
169
+ },
170
+ {
171
+ value: "cm.releases.management:read",
172
+ label: "cm.releases.management:read",
173
+ hint: "View all releases",
174
+ feature: "cma",
175
+ },
176
+ {
177
+ value: "cm.releases.management:write",
178
+ label: "cm.releases.management:write",
179
+ hint: "Create, update, remove releases",
180
+ feature: "cma",
181
+ },
182
+ // Brand Kit
183
+ {
184
+ value: "brand-kits:read",
185
+ label: "brand-kits:read",
186
+ hint: "View Brand Kits and Voice Profiles",
187
+ feature: "brandkit",
188
+ },
189
+ {
190
+ value: "brand-kits:manage",
191
+ label: "brand-kits:manage",
192
+ hint: "Manage Brand Kits and Knowledge Vault",
193
+ feature: "brandkit",
194
+ },
195
+ // Launch
196
+ {
197
+ value: "launch.projects:read",
198
+ label: "launch.projects:read",
199
+ hint: "Read Launch projects",
200
+ feature: "launch",
201
+ },
202
+ {
203
+ value: "launch.projects:write",
204
+ label: "launch.projects:write",
205
+ hint: "Create, update Launch projects",
206
+ feature: "launch",
207
+ },
208
+ {
209
+ value: "launch.projects:delete",
210
+ label: "launch.projects:delete",
211
+ hint: "Delete Launch projects",
212
+ feature: "launch",
72
213
  },
73
214
  ];
215
+ function getScopesForFeatures(features) {
216
+ return OAUTH_SCOPES.filter((s) => s.value !== "user:read" && (s.feature === "oauth" || features.includes(s.feature)));
217
+ }
74
218
  async function runPrompts(cliOptions) {
75
219
  p.intro("Create Contentstack App");
76
220
  const projectName = cliOptions.projectName ??
@@ -116,17 +260,35 @@ async function runPrompts(cliOptions) {
116
260
  }));
117
261
  if (p.isCancel(features))
118
262
  process.exit(0);
119
- let scopes = cliOptions.scopes ?? [];
263
+ let scopes = cliOptions.scopes ? [...new Set(["user:read", ...cliOptions.scopes])] : [];
120
264
  if (features.includes("oauth") && cliOptions.scopes === undefined) {
121
- const selectedScopes = await p.multiselect({
122
- message: "OAuth scopes:",
123
- options: OAUTH_SCOPES,
124
- required: false,
125
- });
126
- if (p.isCancel(selectedScopes))
127
- process.exit(0);
128
- scopes = selectedScopes;
265
+ const availableScopes = getScopesForFeatures(features);
266
+ if (availableScopes.length > 0) {
267
+ const selectedScopes = await p.multiselect({
268
+ message: "OAuth scopes (user:read is always included):",
269
+ options: availableScopes,
270
+ required: false,
271
+ });
272
+ if (p.isCancel(selectedScopes))
273
+ process.exit(0);
274
+ scopes = ["user:read", ...selectedScopes];
275
+ }
276
+ else {
277
+ scopes = ["user:read"];
278
+ }
129
279
  }
280
+ const theme = cliOptions.theme ??
281
+ (await p.select({
282
+ message: "Theme mode:",
283
+ options: [
284
+ { value: "light", label: "Light", hint: "Always light mode" },
285
+ { value: "dark", label: "Dark", hint: "Always dark mode" },
286
+ { value: "system", label: "System", hint: "Follow OS preference" },
287
+ ],
288
+ initialValue: "light",
289
+ }));
290
+ if (p.isCancel(theme))
291
+ process.exit(0);
130
292
  const detectedPm = (0, package_manager_1.detectPackageManager)();
131
293
  const packageManager = cliOptions.packageManager ??
132
294
  (await p.select({
@@ -146,6 +308,7 @@ async function runPrompts(cliOptions) {
146
308
  region: region,
147
309
  features: features,
148
310
  scopes,
311
+ theme: theme,
149
312
  packageManager: packageManager,
150
313
  install: cliOptions.install,
151
314
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/services/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/services/prompts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/services/scaffold.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,eAAe,EAAmB,MAAM,UAAU,CAAA;AAoDhF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FtE"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/services/scaffold.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,eAAe,EAAmB,MAAM,UAAU,CAAA;AAyDhF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FtE"}
@@ -61,6 +61,11 @@ function buildContext(options) {
61
61
  brandkit: options.features.includes("brandkit"),
62
62
  },
63
63
  scopes: options.scopes,
64
+ theme: options.theme,
65
+ themeClass: options.theme === "system" ? "" : options.theme,
66
+ isLightTheme: options.theme === "light",
67
+ isDarkTheme: options.theme === "dark",
68
+ isSystemTheme: options.theme === "system",
64
69
  };
65
70
  }
66
71
  /** Get the --use-<pm> flag for create-next-app */
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/services/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/services/scaffold.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -6,6 +6,8 @@ export type Feature = "cma" | "oauth" | "launch" | "brandkit";
6
6
  export type Framework = "nextjs";
7
7
  /** Supported package managers */
8
8
  export type PackageManager = "npm" | "yarn" | "pnpm";
9
+ /** Theme mode for the scaffolded app */
10
+ export type ThemeMode = "light" | "dark" | "system";
9
11
  /** Options parsed from CLI flags (partially filled) */
10
12
  export interface CLIOptions {
11
13
  projectName?: string;
@@ -13,6 +15,7 @@ export interface CLIOptions {
13
15
  region?: Region;
14
16
  features?: Feature[];
15
17
  scopes?: string[];
18
+ theme?: ThemeMode;
16
19
  packageManager?: PackageManager;
17
20
  install: boolean;
18
21
  }
@@ -23,6 +26,7 @@ export interface ResolvedOptions {
23
26
  region: Region;
24
27
  features: Feature[];
25
28
  scopes: string[];
29
+ theme: ThemeMode;
26
30
  packageManager: PackageManager;
27
31
  install: boolean;
28
32
  }
@@ -38,9 +42,15 @@ export interface TemplateContext {
38
42
  brandkit: boolean;
39
43
  };
40
44
  scopes: string[];
45
+ theme: ThemeMode;
46
+ themeClass: string;
47
+ isLightTheme: boolean;
48
+ isDarkTheme: boolean;
49
+ isSystemTheme: boolean;
41
50
  }
42
51
  export declare const VALID_REGIONS: Region[];
43
52
  export declare const VALID_FEATURES: Feature[];
44
53
  export declare const VALID_FRAMEWORKS: Framework[];
45
54
  export declare const VALID_PACKAGE_MANAGERS: PackageManager[];
55
+ export declare const VALID_THEME_MODES: ThemeMode[];
46
56
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEvF,0CAA0C;AAC1C,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;AAE7D,2BAA2B;AAC3B,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAA;AAEhC,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAEpD,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE;QACR,GAAG,EAAE,OAAO,CAAA;QACZ,KAAK,EAAE,OAAO,CAAA;QACd,MAAM,EAAE,OAAO,CAAA;QACf,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,EAQjC,CAAA;AACD,eAAO,MAAM,cAAc,EAAE,OAAO,EAA2C,CAAA;AAC/E,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAAe,CAAA;AACvD,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAA4B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEvF,0CAA0C;AAC1C,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;AAE7D,2BAA2B;AAC3B,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAA;AAEhC,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAEpD,wCAAwC;AACxC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEnD,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE;QACR,GAAG,EAAE,OAAO,CAAA;QACZ,KAAK,EAAE,OAAO,CAAA;QACd,MAAM,EAAE,OAAO,CAAA;QACf,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,EAQjC,CAAA;AACD,eAAO,MAAM,cAAc,EAAE,OAAO,EAA2C,CAAA;AAC/E,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAAe,CAAA;AACvD,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAA4B,CAAA;AAC/E,eAAO,MAAM,iBAAiB,EAAE,SAAS,EAAgC,CAAA"}
package/dist/types.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VALID_PACKAGE_MANAGERS = exports.VALID_FRAMEWORKS = exports.VALID_FEATURES = exports.VALID_REGIONS = void 0;
3
+ exports.VALID_THEME_MODES = exports.VALID_PACKAGE_MANAGERS = exports.VALID_FRAMEWORKS = exports.VALID_FEATURES = exports.VALID_REGIONS = void 0;
4
4
  exports.VALID_REGIONS = [
5
5
  "us",
6
6
  "eu",
@@ -13,4 +13,5 @@ exports.VALID_REGIONS = [
13
13
  exports.VALID_FEATURES = ["cma", "oauth", "launch", "brandkit"];
14
14
  exports.VALID_FRAMEWORKS = ["nextjs"];
15
15
  exports.VALID_PACKAGE_MANAGERS = ["npm", "yarn", "pnpm"];
16
+ exports.VALID_THEME_MODES = ["light", "dark", "system"];
16
17
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAgDa,QAAA,aAAa,GAAa;IACrC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;CACT,CAAA;AACY,QAAA,cAAc,GAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAClE,QAAA,gBAAgB,GAAgB,CAAC,QAAQ,CAAC,CAAA;AAC1C,QAAA,sBAAsB,GAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA0Da,QAAA,aAAa,GAAa;IACrC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;CACT,CAAA;AACY,QAAA,cAAc,GAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAClE,QAAA,gBAAgB,GAAgB,CAAC,QAAQ,CAAC,CAAA;AAC1C,QAAA,sBAAsB,GAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAClE,QAAA,iBAAiB,GAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA"}
@@ -56,6 +56,18 @@
56
56
  "multiple": false,
57
57
  "type": "option"
58
58
  },
59
+ "theme": {
60
+ "description": "Theme mode (light|dark|system)",
61
+ "name": "theme",
62
+ "hasDynamicHelp": false,
63
+ "multiple": false,
64
+ "options": [
65
+ "light",
66
+ "dark",
67
+ "system"
68
+ ],
69
+ "type": "option"
70
+ },
59
71
  "package-manager": {
60
72
  "description": "Package manager (npm|yarn|pnpm)",
61
73
  "name": "package-manager",
@@ -91,5 +103,5 @@
91
103
  ]
92
104
  }
93
105
  },
94
- "version": "0.1.0"
106
+ "version": "0.1.7"
95
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timbenniks/contentstack-platform-app-scaffold",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Contentstack CLI plugin to scaffold apps using the Platform SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,6 +1,7 @@
1
1
  "use client"
2
2
 
3
3
  import { useAssets } from "@timbenniks/contentstack-platform-sdk/react/hooks"
4
+ import Link from "next/link"
4
5
  import { Button } from "@/components/ui/button"
5
6
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
6
7
 
@@ -32,8 +33,8 @@ export default function AssetsPage() {
32
33
  </CardContent>
33
34
  </Card>
34
35
 
35
- <Button variant="outline" asChild className="mt-6">
36
- <a href="/">Back to home</a>
36
+ <Button variant="outline" className="mt-6">
37
+ <Link href="/">Back to home</Link>
37
38
  </Button>
38
39
  </main>
39
40
  )
@@ -2,6 +2,7 @@
2
2
 
3
3
  import type { BrandKit } from "@timbenniks/contentstack-platform-sdk/brandkit"
4
4
  import { useBrandKit } from "@timbenniks/contentstack-platform-sdk/react/hooks"
5
+ import Link from "next/link"
5
6
  import { Button } from "@/components/ui/button"
6
7
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
7
8
  import { useEffect, useState } from "react"
@@ -48,8 +49,8 @@ export default function BrandKitPage() {
48
49
  </CardContent>
49
50
  </Card>
50
51
 
51
- <Button variant="outline" asChild className="mt-6">
52
- <a href="/">Back to home</a>
52
+ <Button variant="outline" className="mt-6">
53
+ <Link href="/">Back to home</Link>
53
54
  </Button>
54
55
  </main>
55
56
  )
@@ -1,6 +1,7 @@
1
1
  "use client"
2
2
 
3
3
  import { useEntries } from "@timbenniks/contentstack-platform-sdk/react/hooks"
4
+ import Link from "next/link"
4
5
  import { Button } from "@/components/ui/button"
5
6
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
6
7
 
@@ -34,8 +35,8 @@ export default function EntriesPage() {
34
35
  </CardContent>
35
36
  </Card>
36
37
 
37
- <Button variant="outline" asChild className="mt-6">
38
- <a href="/">Back to home</a>
38
+ <Button variant="outline" className="mt-6">
39
+ <Link href="/">Back to home</Link>
39
40
  </Button>
40
41
  </main>
41
42
  )
@@ -2,8 +2,10 @@
2
2
  @import "tw-animate-css";
3
3
  @import "shadcn/tailwind.css";
4
4
  @import "@timbenniks/contentstack-platform-sdk/ui/tokens.css";
5
+ {{#if isSystemTheme}}
5
6
 
6
7
  @custom-variant dark (&:is(.dark *));
8
+ {{/if}}
7
9
 
8
10
  @theme inline {
9
11
  --color-background: var(--background);
@@ -53,6 +55,42 @@
53
55
  * Token values come from @timbenniks/contentstack-platform-sdk/ui/tokens.css
54
56
  * See: https://github.com/timbenniks/contentstack-platform-sdk
55
57
  */
58
+ {{#if isDarkTheme}}
59
+ :root {
60
+ --radius: 0.5rem;
61
+ --background: var(--cs-color-brand-secondary-dark);
62
+ --foreground: var(--cs-color-base-white-5);
63
+ --card: var(--cs-color-brand-secondary-darker);
64
+ --card-foreground: var(--cs-color-base-white-5);
65
+ --popover: var(--cs-color-brand-secondary-darker);
66
+ --popover-foreground: var(--cs-color-base-white-5);
67
+ --primary: var(--cs-color-brand-primary-base);
68
+ --primary-foreground: var(--cs-color-base-white-5);
69
+ --secondary: var(--cs-color-brand-secondary-darker);
70
+ --secondary-foreground: var(--cs-color-base-white-10);
71
+ --muted: var(--cs-color-brand-secondary-darker);
72
+ --muted-foreground: var(--cs-color-brand-secondary-lighter);
73
+ --accent: var(--cs-color-brand-primary-dark);
74
+ --accent-foreground: var(--cs-color-brand-primary-light);
75
+ --destructive: var(--cs-color-brand-warning-base);
76
+ --border: var(--cs-color-brand-secondary-base);
77
+ --input: var(--cs-color-brand-secondary-base);
78
+ --ring: var(--cs-color-brand-primary-base);
79
+ --chart-1: var(--cs-color-brand-primary-light);
80
+ --chart-2: var(--cs-color-brand-success-base);
81
+ --chart-3: var(--cs-color-brand-info-base);
82
+ --chart-4: var(--cs-color-brand-attention-base);
83
+ --chart-5: var(--cs-color-accent-medium-orchid);
84
+ --sidebar: var(--cs-color-brand-secondary-darker);
85
+ --sidebar-foreground: var(--cs-color-base-white-5);
86
+ --sidebar-primary: var(--cs-color-brand-primary-base);
87
+ --sidebar-primary-foreground: var(--cs-color-base-white-5);
88
+ --sidebar-accent: var(--cs-color-brand-primary-dark);
89
+ --sidebar-accent-foreground: var(--cs-color-brand-primary-light);
90
+ --sidebar-border: var(--cs-color-brand-secondary-base);
91
+ --sidebar-ring: var(--cs-color-brand-primary-base);
92
+ }
93
+ {{else}}
56
94
  :root {
57
95
  --radius: 0.5rem;
58
96
  --background: var(--cs-color-base-white-5);
@@ -87,6 +125,45 @@
87
125
  --sidebar-border: var(--cs-color-brand-secondary-lightest);
88
126
  --sidebar-ring: var(--cs-color-brand-primary-base);
89
127
  }
128
+ {{#if isSystemTheme}}
129
+
130
+ @media (prefers-color-scheme: dark) {
131
+ :root {
132
+ --background: var(--cs-color-brand-secondary-dark);
133
+ --foreground: var(--cs-color-base-white-5);
134
+ --card: var(--cs-color-brand-secondary-darker);
135
+ --card-foreground: var(--cs-color-base-white-5);
136
+ --popover: var(--cs-color-brand-secondary-darker);
137
+ --popover-foreground: var(--cs-color-base-white-5);
138
+ --primary: var(--cs-color-brand-primary-base);
139
+ --primary-foreground: var(--cs-color-base-white-5);
140
+ --secondary: var(--cs-color-brand-secondary-darker);
141
+ --secondary-foreground: var(--cs-color-base-white-10);
142
+ --muted: var(--cs-color-brand-secondary-darker);
143
+ --muted-foreground: var(--cs-color-brand-secondary-lighter);
144
+ --accent: var(--cs-color-brand-primary-dark);
145
+ --accent-foreground: var(--cs-color-brand-primary-light);
146
+ --destructive: var(--cs-color-brand-warning-base);
147
+ --border: var(--cs-color-brand-secondary-base);
148
+ --input: var(--cs-color-brand-secondary-base);
149
+ --ring: var(--cs-color-brand-primary-base);
150
+ --chart-1: var(--cs-color-brand-primary-light);
151
+ --chart-2: var(--cs-color-brand-success-base);
152
+ --chart-3: var(--cs-color-brand-info-base);
153
+ --chart-4: var(--cs-color-brand-attention-base);
154
+ --chart-5: var(--cs-color-accent-medium-orchid);
155
+ --sidebar: var(--cs-color-brand-secondary-darker);
156
+ --sidebar-foreground: var(--cs-color-base-white-5);
157
+ --sidebar-primary: var(--cs-color-brand-primary-base);
158
+ --sidebar-primary-foreground: var(--cs-color-base-white-5);
159
+ --sidebar-accent: var(--cs-color-brand-primary-dark);
160
+ --sidebar-accent-foreground: var(--cs-color-brand-primary-light);
161
+ --sidebar-border: var(--cs-color-brand-secondary-base);
162
+ --sidebar-ring: var(--cs-color-brand-primary-base);
163
+ }
164
+ }
165
+ {{/if}}
166
+ {{/if}}
90
167
 
91
168
  @layer base {
92
169
  * {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import type { LaunchProject } from "@timbenniks/contentstack-platform-sdk/launch"
4
4
  import { useLaunch } from "@timbenniks/contentstack-platform-sdk/react/hooks"
5
+ import Link from "next/link"
5
6
  import { Button } from "@/components/ui/button"
6
7
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
7
8
  import { useEffect, useState } from "react"
@@ -48,8 +49,8 @@ export default function LaunchPage() {
48
49
  </CardContent>
49
50
  </Card>
50
51
 
51
- <Button variant="outline" asChild className="mt-6">
52
- <a href="/">Back to home</a>
52
+ <Button variant="outline" className="mt-6">
53
+ <Link href="/">Back to home</Link>
53
54
  </Button>
54
55
  </main>
55
56
  )
@@ -26,7 +26,7 @@ export default function RootLayout({
26
26
  children: React.ReactNode
27
27
  }>) {
28
28
  return (
29
- <html lang="en">
29
+ <html lang="en"{{#if themeClass}} className="{{themeClass}}"{{/if}}>
30
30
  <body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>
31
31
  {{#if hasClientFeatures}}<Providers>{children}</Providers>{{else}}{children}{{/if}}
32
32
  </body>
@@ -1,5 +1,6 @@
1
1
  {{#if features.oauth}}
2
2
  import { auth, signIn, signOut } from "@/lib/auth"
3
+ import Link from "next/link"
3
4
  import { Button } from "@/components/ui/button"
4
5
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
5
6
 
@@ -24,8 +25,8 @@ export default async function Home() {
24
25
  <CardDescription>Manage your entries and assets</CardDescription>
25
26
  </CardHeader>
26
27
  <CardContent className="flex gap-2">
27
- <Button variant="secondary" asChild><a href="/entries">Entries</a></Button>
28
- <Button variant="secondary" asChild><a href="/assets">Assets</a></Button>
28
+ <Button variant="secondary"><Link href="/entries">Entries</Link></Button>
29
+ <Button variant="secondary"><Link href="/assets">Assets</Link></Button>
29
30
  </CardContent>
30
31
  </Card>
31
32
  {{/if}}
@@ -36,7 +37,7 @@ export default async function Home() {
36
37
  <CardDescription>Manage your deployment projects</CardDescription>
37
38
  </CardHeader>
38
39
  <CardContent>
39
- <Button variant="secondary" asChild><a href="/launch">Projects</a></Button>
40
+ <Button variant="secondary"><Link href="/launch">Projects</Link></Button>
40
41
  </CardContent>
41
42
  </Card>
42
43
  {{/if}}
@@ -47,7 +48,7 @@ export default async function Home() {
47
48
  <CardDescription>Manage your brand kits and voice profiles</CardDescription>
48
49
  </CardHeader>
49
50
  <CardContent>
50
- <Button variant="secondary" asChild><a href="/brandkit">Brand Kits</a></Button>
51
+ <Button variant="secondary"><Link href="/brandkit">Brand Kits</Link></Button>
51
52
  </CardContent>
52
53
  </Card>
53
54
  {{/if}}
@@ -95,6 +96,7 @@ export default async function Home() {
95
96
  )
96
97
  }
97
98
  {{else}}
99
+ import Link from "next/link"
98
100
  import { Button } from "@/components/ui/button"
99
101
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
100
102
 
@@ -126,8 +128,8 @@ export default function Home() {
126
128
  <CardTitle>Content Management</CardTitle>
127
129
  </CardHeader>
128
130
  <CardContent className="flex gap-2">
129
- <Button variant="secondary" asChild><a href="/entries">Entries</a></Button>
130
- <Button variant="secondary" asChild><a href="/assets">Assets</a></Button>
131
+ <Button variant="secondary"><Link href="/entries">Entries</Link></Button>
132
+ <Button variant="secondary"><Link href="/assets">Assets</Link></Button>
131
133
  </CardContent>
132
134
  </Card>
133
135
  {{/if}}
@@ -138,7 +140,7 @@ export default function Home() {
138
140
  <CardTitle>Launch</CardTitle>
139
141
  </CardHeader>
140
142
  <CardContent>
141
- <Button variant="secondary" asChild><a href="/launch">Projects</a></Button>
143
+ <Button variant="secondary"><Link href="/launch">Projects</Link></Button>
142
144
  </CardContent>
143
145
  </Card>
144
146
  {{/if}}
@@ -149,7 +151,7 @@ export default function Home() {
149
151
  <CardTitle>Brand Kit AI</CardTitle>
150
152
  </CardHeader>
151
153
  <CardContent>
152
- <Button variant="secondary" asChild><a href="/brandkit">Brand Kits</a></Button>
154
+ <Button variant="secondary"><Link href="/brandkit">Brand Kits</Link></Button>
153
155
  </CardContent>
154
156
  </Card>
155
157
  {{/if}}