@getcoherent/core 0.5.12 → 0.5.13
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.d.ts +9 -10
- package/dist/index.js +170 -80
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -903,10 +903,7 @@ declare const LayoutBlockDefinitionSchema: z.ZodObject<{
|
|
|
903
903
|
generatedCode?: string | undefined;
|
|
904
904
|
}>;
|
|
905
905
|
type LayoutBlockDefinition = z.infer<typeof LayoutBlockDefinitionSchema>;
|
|
906
|
-
|
|
907
|
-
* Page layout type
|
|
908
|
-
*/
|
|
909
|
-
declare const PageLayoutSchema: z.ZodEnum<["centered", "sidebar-left", "sidebar-right", "full-width", "grid"]>;
|
|
906
|
+
declare const PageLayoutSchema: z.ZodEffects<z.ZodEnum<["centered", "sidebar-left", "sidebar-right", "full-width", "grid"]>, "centered" | "sidebar-left" | "sidebar-right" | "full-width" | "grid", unknown>;
|
|
910
907
|
type PageLayout = z.infer<typeof PageLayoutSchema>;
|
|
911
908
|
/**
|
|
912
909
|
* Page definition
|
|
@@ -956,7 +953,7 @@ declare const PageDefinitionSchema: z.ZodObject<{
|
|
|
956
953
|
id: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
957
954
|
name: z.ZodString;
|
|
958
955
|
route: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
959
|
-
layout: z.ZodEnum<["centered", "sidebar-left", "sidebar-right", "full-width", "grid"]>;
|
|
956
|
+
layout: z.ZodEffects<z.ZodEnum<["centered", "sidebar-left", "sidebar-right", "full-width", "grid"]>, "centered" | "sidebar-left" | "sidebar-right" | "full-width" | "grid", unknown>;
|
|
960
957
|
sections: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
961
958
|
id: z.ZodString;
|
|
962
959
|
name: z.ZodString;
|
|
@@ -1062,11 +1059,11 @@ declare const PageDefinitionSchema: z.ZodObject<{
|
|
|
1062
1059
|
name: string;
|
|
1063
1060
|
description: string;
|
|
1064
1061
|
id: string;
|
|
1065
|
-
layout: "centered" | "sidebar-left" | "sidebar-right" | "full-width" | "grid";
|
|
1066
1062
|
createdAt: string;
|
|
1067
1063
|
updatedAt: string;
|
|
1068
1064
|
route: string;
|
|
1069
1065
|
title: string;
|
|
1066
|
+
layout?: unknown;
|
|
1070
1067
|
sections?: {
|
|
1071
1068
|
name: string;
|
|
1072
1069
|
id: string;
|
|
@@ -1882,7 +1879,7 @@ declare const DesignSystemConfigSchema: z.ZodObject<{
|
|
|
1882
1879
|
id: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
1883
1880
|
name: z.ZodString;
|
|
1884
1881
|
route: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
1885
|
-
layout: z.ZodEnum<["centered", "sidebar-left", "sidebar-right", "full-width", "grid"]>;
|
|
1882
|
+
layout: z.ZodEffects<z.ZodEnum<["centered", "sidebar-left", "sidebar-right", "full-width", "grid"]>, "centered" | "sidebar-left" | "sidebar-right" | "full-width" | "grid", unknown>;
|
|
1886
1883
|
sections: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1887
1884
|
id: z.ZodString;
|
|
1888
1885
|
name: z.ZodString;
|
|
@@ -1988,11 +1985,11 @@ declare const DesignSystemConfigSchema: z.ZodObject<{
|
|
|
1988
1985
|
name: string;
|
|
1989
1986
|
description: string;
|
|
1990
1987
|
id: string;
|
|
1991
|
-
layout: "centered" | "sidebar-left" | "sidebar-right" | "full-width" | "grid";
|
|
1992
1988
|
createdAt: string;
|
|
1993
1989
|
updatedAt: string;
|
|
1994
1990
|
route: string;
|
|
1995
1991
|
title: string;
|
|
1992
|
+
layout?: unknown;
|
|
1996
1993
|
sections?: {
|
|
1997
1994
|
name: string;
|
|
1998
1995
|
id: string;
|
|
@@ -2497,11 +2494,11 @@ declare const DesignSystemConfigSchema: z.ZodObject<{
|
|
|
2497
2494
|
name: string;
|
|
2498
2495
|
description: string;
|
|
2499
2496
|
id: string;
|
|
2500
|
-
layout: "centered" | "sidebar-left" | "sidebar-right" | "full-width" | "grid";
|
|
2501
2497
|
createdAt: string;
|
|
2502
2498
|
updatedAt: string;
|
|
2503
2499
|
route: string;
|
|
2504
2500
|
title: string;
|
|
2501
|
+
layout?: unknown;
|
|
2505
2502
|
sections?: {
|
|
2506
2503
|
name: string;
|
|
2507
2504
|
id: string;
|
|
@@ -2718,7 +2715,9 @@ interface ComponentProvider {
|
|
|
2718
2715
|
id: string;
|
|
2719
2716
|
init(projectRoot: string): Promise<void>;
|
|
2720
2717
|
install(name: string, projectRoot: string): Promise<void>;
|
|
2718
|
+
has(name: string): boolean;
|
|
2721
2719
|
list(): ComponentMeta[];
|
|
2720
|
+
listNames(): string[];
|
|
2722
2721
|
getComponentAPI(name: string): ComponentAPI | null;
|
|
2723
2722
|
getCssVariables(tokens: DesignTokens): string;
|
|
2724
2723
|
getThemeBlock(tokens: DesignTokens): string;
|
|
@@ -3445,7 +3444,7 @@ declare class PageGenerator {
|
|
|
3445
3444
|
*/
|
|
3446
3445
|
generateSharedFooterCode(): string;
|
|
3447
3446
|
/**
|
|
3448
|
-
* Generate shared Sidebar component code
|
|
3447
|
+
* Generate shared Sidebar component code using shadcn/ui Sidebar.
|
|
3449
3448
|
* Used when navigation.type is 'sidebar' or 'both'.
|
|
3450
3449
|
*/
|
|
3451
3450
|
generateSharedSidebarCode(): string;
|
package/dist/index.js
CHANGED
|
@@ -146,7 +146,7 @@ var LayoutBlockDefinitionSchema = z.object({
|
|
|
146
146
|
createdAt: z.string().datetime().optional(),
|
|
147
147
|
updatedAt: z.string().datetime().optional()
|
|
148
148
|
});
|
|
149
|
-
var
|
|
149
|
+
var PAGE_LAYOUT_ENUM = z.enum([
|
|
150
150
|
"centered",
|
|
151
151
|
// Single centered column
|
|
152
152
|
"sidebar-left",
|
|
@@ -158,6 +158,10 @@ var PageLayoutSchema = z.enum([
|
|
|
158
158
|
"grid"
|
|
159
159
|
// CSS Grid layout
|
|
160
160
|
]);
|
|
161
|
+
var PageLayoutSchema = z.preprocess((val) => {
|
|
162
|
+
if (val === "sidebar") return "sidebar-left";
|
|
163
|
+
return val;
|
|
164
|
+
}, PAGE_LAYOUT_ENUM);
|
|
161
165
|
var PageAnalysisSchema = z.object({
|
|
162
166
|
sections: z.array(
|
|
163
167
|
z.object({
|
|
@@ -1237,6 +1241,43 @@ function blendColors(hex1, hex2, ratio) {
|
|
|
1237
1241
|
const toHex = (n) => n.toString(16).padStart(2, "0");
|
|
1238
1242
|
return `#${toHex(blend(r1, r2))}${toHex(blend(g1, g2))}${toHex(blend(b1, b2))}`;
|
|
1239
1243
|
}
|
|
1244
|
+
function hexToHsl(hex) {
|
|
1245
|
+
const c = hex.replace("#", "");
|
|
1246
|
+
const r = parseInt(c.slice(0, 2), 16) / 255;
|
|
1247
|
+
const g = parseInt(c.slice(2, 4), 16) / 255;
|
|
1248
|
+
const b = parseInt(c.slice(4, 6), 16) / 255;
|
|
1249
|
+
const max = Math.max(r, g, b), min = Math.min(r, g, b);
|
|
1250
|
+
const l = (max + min) / 2;
|
|
1251
|
+
if (max === min) return [0, 0, l];
|
|
1252
|
+
const d = max - min;
|
|
1253
|
+
const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
1254
|
+
let h = 0;
|
|
1255
|
+
if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
|
|
1256
|
+
else if (max === g) h = ((b - r) / d + 2) / 6;
|
|
1257
|
+
else h = ((r - g) / d + 4) / 6;
|
|
1258
|
+
return [h * 360, s, l];
|
|
1259
|
+
}
|
|
1260
|
+
function hslToHex(h, s, l) {
|
|
1261
|
+
h = (h % 360 + 360) % 360;
|
|
1262
|
+
const a = s * Math.min(l, 1 - l);
|
|
1263
|
+
const f = (n) => {
|
|
1264
|
+
const k = (n + h / 30) % 12;
|
|
1265
|
+
const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
|
|
1266
|
+
return Math.round(255 * Math.max(0, Math.min(1, color))).toString(16).padStart(2, "0");
|
|
1267
|
+
};
|
|
1268
|
+
return `#${f(0)}${f(8)}${f(4)}`;
|
|
1269
|
+
}
|
|
1270
|
+
function generateChartColors(primary, secondary) {
|
|
1271
|
+
const [h1, s1, l1] = hexToHsl(primary);
|
|
1272
|
+
const [h2, s2, l2] = hexToHsl(secondary);
|
|
1273
|
+
return [
|
|
1274
|
+
primary,
|
|
1275
|
+
secondary,
|
|
1276
|
+
hslToHex(h1 + 60, s1 * 0.8, l1),
|
|
1277
|
+
hslToHex(h2 + 90, s2 * 0.7, l2),
|
|
1278
|
+
hslToHex(h1 + 180, s1 * 0.6, l1)
|
|
1279
|
+
];
|
|
1280
|
+
}
|
|
1240
1281
|
function buildCssVariables(config) {
|
|
1241
1282
|
const light = config.tokens.colors.light;
|
|
1242
1283
|
const dark = config.tokens.colors.dark;
|
|
@@ -1246,7 +1287,31 @@ function buildCssVariables(config) {
|
|
|
1246
1287
|
const accentDarkVars = ` --accent: ${dark.muted};
|
|
1247
1288
|
--accent-foreground: ${dark.foreground};
|
|
1248
1289
|
`;
|
|
1290
|
+
const sidebarLightVars = ` --sidebar-background: ${light.background};
|
|
1291
|
+
--sidebar-foreground: ${light.foreground};
|
|
1292
|
+
--sidebar-primary: ${light.primary};
|
|
1293
|
+
--sidebar-primary-foreground: ${contrastFg(light.primary)};
|
|
1294
|
+
--sidebar-accent: ${light.muted};
|
|
1295
|
+
--sidebar-accent-foreground: ${light.foreground};
|
|
1296
|
+
--sidebar-border: ${light.border};
|
|
1297
|
+
--sidebar-ring: ${light.primary};
|
|
1298
|
+
`;
|
|
1299
|
+
const chartLight = generateChartColors(light.primary, light.secondary);
|
|
1300
|
+
const chartDark = generateChartColors(dark.primary, dark.secondary);
|
|
1301
|
+
const chartLightVars = chartLight.map((c, i) => ` --chart-${i + 1}: ${c};`).join("\n") + "\n";
|
|
1302
|
+
const chartDarkVars = chartDark.map((c, i) => ` --chart-${i + 1}: ${c};`).join("\n") + "\n";
|
|
1303
|
+
const sidebarDarkVars = ` --sidebar-background: ${dark.background};
|
|
1304
|
+
--sidebar-foreground: ${dark.foreground};
|
|
1305
|
+
--sidebar-primary: ${dark.primary};
|
|
1306
|
+
--sidebar-primary-foreground: ${contrastFg(dark.primary)};
|
|
1307
|
+
--sidebar-accent: ${dark.muted};
|
|
1308
|
+
--sidebar-accent-foreground: ${dark.foreground};
|
|
1309
|
+
--sidebar-border: ${dark.border};
|
|
1310
|
+
--sidebar-ring: ${dark.primary};
|
|
1311
|
+
`;
|
|
1312
|
+
const radius = config.tokens.radius?.md ?? "0.5rem";
|
|
1249
1313
|
return `:root {
|
|
1314
|
+
--radius: ${radius};
|
|
1250
1315
|
--background: ${light.background};
|
|
1251
1316
|
--foreground: ${light.foreground};
|
|
1252
1317
|
--primary: ${light.primary};
|
|
@@ -1268,7 +1333,7 @@ function buildCssVariables(config) {
|
|
|
1268
1333
|
--warning: ${light.warning};
|
|
1269
1334
|
--error: ${light.error};
|
|
1270
1335
|
--info: ${light.info || light.primary};
|
|
1271
|
-
${accentVars}}
|
|
1336
|
+
${accentVars}${sidebarLightVars}${chartLightVars}}
|
|
1272
1337
|
.dark {
|
|
1273
1338
|
--background: ${dark.background};
|
|
1274
1339
|
--foreground: ${dark.foreground};
|
|
@@ -1291,7 +1356,7 @@ ${accentVars}}
|
|
|
1291
1356
|
--warning: ${dark.warning};
|
|
1292
1357
|
--error: ${dark.error};
|
|
1293
1358
|
--info: ${dark.info || dark.primary};
|
|
1294
|
-
${accentDarkVars}}
|
|
1359
|
+
${accentDarkVars}${sidebarDarkVars}${chartDarkVars}}
|
|
1295
1360
|
`;
|
|
1296
1361
|
}
|
|
1297
1362
|
|
|
@@ -6070,6 +6135,8 @@ ${menuItems}
|
|
|
6070
6135
|
<Link href="${signUpItem.route}" className="inline-flex items-center justify-center text-sm font-medium h-9 px-4 rounded-md bg-primary text-primary-foreground hover:bg-primary/90 transition-colors">${signUpItem.label}</Link>` : ""}` : "";
|
|
6071
6136
|
const dropdownImport = hasDropdowns ? `
|
|
6072
6137
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'` : "";
|
|
6138
|
+
const sheetImport = `
|
|
6139
|
+
import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet'`;
|
|
6073
6140
|
const appName = this.escapeString(this.config.name);
|
|
6074
6141
|
const mobileNavItems = [...ungrouped];
|
|
6075
6142
|
for (const [, items] of grouped) {
|
|
@@ -6089,7 +6156,7 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigge
|
|
|
6089
6156
|
|
|
6090
6157
|
import Link from 'next/link'
|
|
6091
6158
|
import { usePathname } from 'next/navigation'
|
|
6092
|
-
import { useEffect, useState } from 'react'${dropdownImport}
|
|
6159
|
+
import { useEffect, useState } from 'react'${dropdownImport}${sheetImport}
|
|
6093
6160
|
|
|
6094
6161
|
function ThemeToggle() {
|
|
6095
6162
|
const [dark, setDark] = useState(false)
|
|
@@ -6138,26 +6205,23 @@ export function Header() {
|
|
|
6138
6205
|
</div>
|
|
6139
6206
|
<div className="flex items-center gap-1">${authButtonsBlock}
|
|
6140
6207
|
<ThemeToggle />
|
|
6141
|
-
<
|
|
6142
|
-
|
|
6143
|
-
|
|
6144
|
-
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6149
|
-
|
|
6150
|
-
|
|
6151
|
-
|
|
6208
|
+
<Sheet open={mobileOpen} onOpenChange={setMobileOpen}>
|
|
6209
|
+
<SheetTrigger asChild>
|
|
6210
|
+
<button
|
|
6211
|
+
className="flex md:hidden items-center justify-center w-9 h-9 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors"
|
|
6212
|
+
aria-label="Toggle menu"
|
|
6213
|
+
>
|
|
6214
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><line x1="4" x2="20" y1="12" y2="12"/><line x1="4" x2="20" y1="6" y2="6"/><line x1="4" x2="20" y1="18" y2="18"/></svg>
|
|
6215
|
+
</button>
|
|
6216
|
+
</SheetTrigger>
|
|
6217
|
+
<SheetContent side="right" className="w-72 p-4">
|
|
6218
|
+
<nav className="flex flex-col gap-1 pt-8">
|
|
6219
|
+
${mobileLinks}${mobileAuthBlock}
|
|
6220
|
+
</nav>
|
|
6221
|
+
</SheetContent>
|
|
6222
|
+
</Sheet>
|
|
6152
6223
|
</div>
|
|
6153
6224
|
</div>
|
|
6154
|
-
{mobileOpen && (
|
|
6155
|
-
<div className="md:hidden border-t bg-background">
|
|
6156
|
-
<div className="mx-auto max-w-7xl px-4 py-3 space-y-1">
|
|
6157
|
-
${mobileLinks}${mobileAuthBlock}
|
|
6158
|
-
</div>
|
|
6159
|
-
</div>
|
|
6160
|
-
)}
|
|
6161
6225
|
</nav>
|
|
6162
6226
|
<Link
|
|
6163
6227
|
href="/design-system"
|
|
@@ -6248,7 +6312,7 @@ ${companyColumn}
|
|
|
6248
6312
|
`;
|
|
6249
6313
|
}
|
|
6250
6314
|
/**
|
|
6251
|
-
* Generate shared Sidebar component code
|
|
6315
|
+
* Generate shared Sidebar component code using shadcn/ui Sidebar.
|
|
6252
6316
|
* Used when navigation.type is 'sidebar' or 'both'.
|
|
6253
6317
|
*/
|
|
6254
6318
|
generateSharedSidebarCode() {
|
|
@@ -6279,71 +6343,71 @@ ${companyColumn}
|
|
|
6279
6343
|
ungrouped.push(item);
|
|
6280
6344
|
}
|
|
6281
6345
|
}
|
|
6282
|
-
const
|
|
6283
|
-
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
${
|
|
6303
|
-
|
|
6304
|
-
|
|
6305
|
-
|
|
6346
|
+
const menuItem = (item) => ` <SidebarMenuItem>
|
|
6347
|
+
<SidebarMenuButton asChild isActive={pathname === "${item.route}"}>
|
|
6348
|
+
<Link href="${item.route}">${item.label}</Link>
|
|
6349
|
+
</SidebarMenuButton>
|
|
6350
|
+
</SidebarMenuItem>`;
|
|
6351
|
+
const ungroupedItems = ungrouped.map(menuItem).join("\n");
|
|
6352
|
+
const groupBlocks = Array.from(grouped.entries()).map(([groupName, items]) => {
|
|
6353
|
+
const groupItems = items.map(menuItem).join("\n");
|
|
6354
|
+
return ` <SidebarGroup>
|
|
6355
|
+
<SidebarGroupLabel>${groupName}</SidebarGroupLabel>
|
|
6356
|
+
<SidebarGroupContent>
|
|
6357
|
+
<SidebarMenu>
|
|
6358
|
+
${groupItems}
|
|
6359
|
+
</SidebarMenu>
|
|
6360
|
+
</SidebarGroupContent>
|
|
6361
|
+
</SidebarGroup>`;
|
|
6362
|
+
}).join("\n");
|
|
6363
|
+
const mainGroup = ungroupedItems ? ` <SidebarGroup>
|
|
6364
|
+
<SidebarGroupContent>
|
|
6365
|
+
<SidebarMenu>
|
|
6366
|
+
${ungroupedItems}
|
|
6367
|
+
</SidebarMenu>
|
|
6368
|
+
</SidebarGroupContent>
|
|
6369
|
+
</SidebarGroup>` : "";
|
|
6370
|
+
const allGroups = [mainGroup, groupBlocks].filter(Boolean).join("\n");
|
|
6306
6371
|
const appName = this.escapeString(this.config.name);
|
|
6307
6372
|
return `'use client'
|
|
6308
6373
|
|
|
6309
6374
|
import Link from 'next/link'
|
|
6310
6375
|
import { usePathname } from 'next/navigation'
|
|
6311
|
-
import {
|
|
6312
|
-
|
|
6313
|
-
|
|
6376
|
+
import {
|
|
6377
|
+
Sidebar,
|
|
6378
|
+
SidebarContent,
|
|
6379
|
+
SidebarGroup,
|
|
6380
|
+
SidebarGroupContent,
|
|
6381
|
+
SidebarGroupLabel,
|
|
6382
|
+
SidebarHeader,
|
|
6383
|
+
SidebarMenu,
|
|
6384
|
+
SidebarMenuButton,
|
|
6385
|
+
SidebarMenuItem,
|
|
6386
|
+
SidebarProvider,
|
|
6387
|
+
SidebarTrigger,
|
|
6388
|
+
} from '@/components/ui/sidebar'
|
|
6389
|
+
|
|
6390
|
+
export function AppSidebar() {
|
|
6314
6391
|
const pathname = usePathname()
|
|
6315
|
-
const [collapsed, setCollapsed] = useState(false)
|
|
6316
6392
|
|
|
6317
6393
|
if (pathname?.startsWith('/design-system')) return null
|
|
6318
6394
|
|
|
6319
6395
|
return (
|
|
6320
|
-
<
|
|
6321
|
-
<
|
|
6322
|
-
|
|
6323
|
-
<
|
|
6324
|
-
|
|
6325
|
-
|
|
6326
|
-
|
|
6327
|
-
|
|
6328
|
-
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
) : (
|
|
6336
|
-
<><path d="m15 18-6-6 6-6"/></>
|
|
6337
|
-
)}
|
|
6338
|
-
</svg>
|
|
6339
|
-
</button>
|
|
6340
|
-
</div>
|
|
6341
|
-
{!collapsed && (
|
|
6342
|
-
<nav className="flex flex-col gap-1 p-3">
|
|
6343
|
-
${allSections}
|
|
6344
|
-
</nav>
|
|
6345
|
-
)}
|
|
6346
|
-
</aside>
|
|
6396
|
+
<SidebarProvider>
|
|
6397
|
+
<Sidebar>
|
|
6398
|
+
<SidebarHeader>
|
|
6399
|
+
<div className="flex items-center justify-between px-2 py-1">
|
|
6400
|
+
<Link href="/" className="text-sm font-semibold text-foreground truncate">
|
|
6401
|
+
${appName}
|
|
6402
|
+
</Link>
|
|
6403
|
+
<SidebarTrigger />
|
|
6404
|
+
</div>
|
|
6405
|
+
</SidebarHeader>
|
|
6406
|
+
<SidebarContent>
|
|
6407
|
+
${allGroups}
|
|
6408
|
+
</SidebarContent>
|
|
6409
|
+
</Sidebar>
|
|
6410
|
+
</SidebarProvider>
|
|
6347
6411
|
)
|
|
6348
6412
|
}
|
|
6349
6413
|
`;
|
|
@@ -7082,6 +7146,19 @@ export default config
|
|
|
7082
7146
|
--warning: ${light.warning};
|
|
7083
7147
|
--error: ${light.error};
|
|
7084
7148
|
--info: ${light.info || light.primary};
|
|
7149
|
+
--sidebar-background: ${light.background};
|
|
7150
|
+
--sidebar-foreground: ${light.foreground};
|
|
7151
|
+
--sidebar-primary: ${light.primary};
|
|
7152
|
+
--sidebar-primary-foreground: ${_ProjectScaffolder.contrastingForeground(light.primary)};
|
|
7153
|
+
--sidebar-accent: ${light.muted};
|
|
7154
|
+
--sidebar-accent-foreground: ${light.foreground};
|
|
7155
|
+
--sidebar-border: ${light.border};
|
|
7156
|
+
--sidebar-ring: ${light.primary};
|
|
7157
|
+
--chart-1: ${light.primary};
|
|
7158
|
+
--chart-2: ${light.secondary};
|
|
7159
|
+
--chart-3: ${light.success};
|
|
7160
|
+
--chart-4: ${light.warning};
|
|
7161
|
+
--chart-5: ${light.error};
|
|
7085
7162
|
}
|
|
7086
7163
|
|
|
7087
7164
|
.dark {
|
|
@@ -7108,6 +7185,19 @@ export default config
|
|
|
7108
7185
|
--warning: ${dark.warning};
|
|
7109
7186
|
--error: ${dark.error};
|
|
7110
7187
|
--info: ${dark.info || dark.primary};
|
|
7188
|
+
--sidebar-background: ${dark.background};
|
|
7189
|
+
--sidebar-foreground: ${dark.foreground};
|
|
7190
|
+
--sidebar-primary: ${dark.primary};
|
|
7191
|
+
--sidebar-primary-foreground: ${_ProjectScaffolder.contrastingForeground(dark.primary)};
|
|
7192
|
+
--sidebar-accent: ${dark.muted};
|
|
7193
|
+
--sidebar-accent-foreground: ${dark.foreground};
|
|
7194
|
+
--sidebar-border: ${dark.border};
|
|
7195
|
+
--sidebar-ring: ${dark.primary};
|
|
7196
|
+
--chart-1: ${dark.primary};
|
|
7197
|
+
--chart-2: ${dark.secondary};
|
|
7198
|
+
--chart-3: ${dark.success};
|
|
7199
|
+
--chart-4: ${dark.warning};
|
|
7200
|
+
--chart-5: ${dark.error};
|
|
7111
7201
|
}
|
|
7112
7202
|
|
|
7113
7203
|
* {
|
|
@@ -7215,10 +7305,10 @@ export function cn(...inputs: ClassValue[]) {
|
|
|
7215
7305
|
if (navType === "sidebar" || navType === "both") {
|
|
7216
7306
|
const sidebarCode = this.pageGenerator.generateSharedSidebarCode();
|
|
7217
7307
|
await generateSharedComponent(this.projectRoot, {
|
|
7218
|
-
name: "
|
|
7308
|
+
name: "AppSidebar",
|
|
7219
7309
|
type: "layout",
|
|
7220
7310
|
code: sidebarCode,
|
|
7221
|
-
description: "
|
|
7311
|
+
description: "Application sidebar using shadcn/ui Sidebar components",
|
|
7222
7312
|
usedIn: ["app/(app)/layout.tsx"]
|
|
7223
7313
|
});
|
|
7224
7314
|
}
|