ai-forge-cli 0.4.2 → 0.4.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/dist/add-component-B3O3RZWD.js +120 -0
- package/dist/{add-feature-2AR4DP7P.js → add-feature-TYLPV3DB.js} +38 -9
- package/dist/add-hook-VJC6P6AP.js +103 -0
- package/dist/{add-integration-QXB63S3V.js → add-integration-ESA7JFY7.js} +98 -28
- package/dist/add-layout-IVTJUG6G.js +104 -0
- package/dist/add-page-G75JUU77.js +81 -0
- package/dist/add-util-V5SQRVJC.js +73 -0
- package/dist/{chunk-PIFX2L5H.js → chunk-MBF6K2AC.js} +1 -0
- package/dist/chunk-YMJTSRWM.js +49 -0
- package/dist/index.js +8 -3
- package/dist/{init-OYJP5QCZ.js → init-C4FFZDSP.js} +1 -1
- package/dist/templates/component/Component.tsx.hbs +11 -0
- package/dist/templates/feature/routes/$id.tsx.hbs +3 -13
- package/dist/templates/feature/routes/index.tsx.hbs +19 -9
- package/dist/templates/feature/src/components/Card.tsx.hbs +21 -0
- package/dist/templates/feature/src/components/Detail.tsx.hbs +28 -0
- package/dist/templates/feature/src/components/Form.tsx.hbs +46 -0
- package/dist/templates/feature/src/components/List.tsx.hbs +26 -0
- package/dist/templates/feature/src/components/index.ts.hbs +4 -4
- package/dist/templates/hook/feature-hook.ts.hbs +4 -0
- package/dist/templates/hook/global-hook.ts.hbs +11 -0
- package/dist/templates/init/claude.md.hbs +37 -11
- package/dist/templates/integration/auth/src/components/auth/AuthGuard.tsx.hbs +31 -0
- package/dist/templates/integration/auth/src/components/auth/LoginForm.tsx.hbs +83 -0
- package/dist/templates/integration/auth/src/components/auth/SignupForm.tsx.hbs +102 -0
- package/dist/templates/integration/auth/src/components/auth/UserMenu.tsx.hbs +36 -0
- package/dist/templates/integration/auth/src/components/auth/index.ts.hbs +4 -0
- package/dist/templates/integration/auth/src/routes/login.tsx.hbs +14 -0
- package/dist/templates/integration/auth/src/routes/signup.tsx.hbs +14 -0
- package/dist/templates/integration/storage/src/components/storage/FilePreview.tsx.hbs +18 -0
- package/dist/templates/integration/storage/src/components/storage/FileUpload.tsx.hbs +49 -0
- package/dist/templates/integration/storage/src/components/storage/index.ts.hbs +2 -0
- package/dist/templates/layout/auth/_layout.tsx.hbs +15 -0
- package/dist/templates/layout/auth/index.tsx.hbs +5 -0
- package/dist/templates/layout/base/_layout.tsx.hbs +14 -0
- package/dist/templates/layout/base/index.tsx.hbs +13 -0
- package/dist/templates/layout/dashboard/_layout.tsx.hbs +20 -0
- package/dist/templates/layout/dashboard/components/Header.tsx.hbs +12 -0
- package/dist/templates/layout/dashboard/components/Sidebar.tsx.hbs +39 -0
- package/dist/templates/layout/dashboard/components/index.ts.hbs +2 -0
- package/dist/templates/layout/dashboard/index.tsx.hbs +15 -0
- package/dist/templates/layout/marketing/_layout.tsx.hbs +39 -0
- package/dist/templates/layout/marketing/index.tsx.hbs +16 -0
- package/dist/templates/page/components/Content.tsx.hbs +8 -0
- package/dist/templates/page/components/index.ts.hbs +1 -0
- package/dist/templates/page/route.tsx.hbs +10 -0
- package/dist/templates/util/util.ts.hbs +7 -0
- package/package.json +1 -1
- package/templates/component/Component.tsx.hbs +11 -0
- package/templates/feature/routes/$id.tsx.hbs +3 -13
- package/templates/feature/routes/index.tsx.hbs +19 -9
- package/templates/feature/src/components/Card.tsx.hbs +21 -0
- package/templates/feature/src/components/Detail.tsx.hbs +28 -0
- package/templates/feature/src/components/Form.tsx.hbs +46 -0
- package/templates/feature/src/components/List.tsx.hbs +26 -0
- package/templates/feature/src/components/index.ts.hbs +4 -4
- package/templates/hook/feature-hook.ts.hbs +4 -0
- package/templates/hook/global-hook.ts.hbs +11 -0
- package/templates/init/claude.md.hbs +37 -11
- package/templates/integration/auth/src/components/auth/AuthGuard.tsx.hbs +31 -0
- package/templates/integration/auth/src/components/auth/LoginForm.tsx.hbs +83 -0
- package/templates/integration/auth/src/components/auth/SignupForm.tsx.hbs +102 -0
- package/templates/integration/auth/src/components/auth/UserMenu.tsx.hbs +36 -0
- package/templates/integration/auth/src/components/auth/index.ts.hbs +4 -0
- package/templates/integration/auth/src/routes/login.tsx.hbs +14 -0
- package/templates/integration/auth/src/routes/signup.tsx.hbs +14 -0
- package/templates/integration/storage/src/components/storage/FilePreview.tsx.hbs +18 -0
- package/templates/integration/storage/src/components/storage/FileUpload.tsx.hbs +49 -0
- package/templates/integration/storage/src/components/storage/index.ts.hbs +2 -0
- package/templates/layout/auth/_layout.tsx.hbs +15 -0
- package/templates/layout/auth/index.tsx.hbs +5 -0
- package/templates/layout/base/_layout.tsx.hbs +14 -0
- package/templates/layout/base/index.tsx.hbs +13 -0
- package/templates/layout/dashboard/_layout.tsx.hbs +20 -0
- package/templates/layout/dashboard/components/Header.tsx.hbs +12 -0
- package/templates/layout/dashboard/components/Sidebar.tsx.hbs +39 -0
- package/templates/layout/dashboard/components/index.ts.hbs +2 -0
- package/templates/layout/dashboard/index.tsx.hbs +15 -0
- package/templates/layout/marketing/_layout.tsx.hbs +39 -0
- package/templates/layout/marketing/index.tsx.hbs +16 -0
- package/templates/page/components/Content.tsx.hbs +8 -0
- package/templates/page/components/index.ts.hbs +1 -0
- package/templates/page/route.tsx.hbs +10 -0
- package/templates/util/util.ts.hbs +7 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function Header() {
|
|
2
|
+
return (
|
|
3
|
+
<header className="flex h-14 items-center justify-between border-b px-6">
|
|
4
|
+
<div>
|
|
5
|
+
{/* Breadcrumbs or page title */}
|
|
6
|
+
</div>
|
|
7
|
+
<div>
|
|
8
|
+
{/* User menu - add <UserMenu /> if auth is configured */}
|
|
9
|
+
</div>
|
|
10
|
+
</header>
|
|
11
|
+
);
|
|
12
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Link, useLocation } from "@tanstack/react-router";
|
|
2
|
+
import { cn } from "~/lib/cn";
|
|
3
|
+
|
|
4
|
+
const navItems = [
|
|
5
|
+
{ href: "/dashboard", label: "Home" },
|
|
6
|
+
{ href: "/dashboard/projects", label: "Projects" },
|
|
7
|
+
{ href: "/dashboard/team", label: "Team" },
|
|
8
|
+
{ href: "/dashboard/settings", label: "Settings" },
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
export function Sidebar() {
|
|
12
|
+
const location = useLocation();
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<aside className="hidden w-64 border-r bg-muted/40 lg:block">
|
|
16
|
+
<div className="flex h-14 items-center border-b px-4">
|
|
17
|
+
<Link to="/" className="font-semibold">
|
|
18
|
+
Your App
|
|
19
|
+
</Link>
|
|
20
|
+
</div>
|
|
21
|
+
<nav className="space-y-1 p-4">
|
|
22
|
+
{navItems.map((item) => (
|
|
23
|
+
<Link
|
|
24
|
+
key={item.href}
|
|
25
|
+
to={item.href}
|
|
26
|
+
className={cn(
|
|
27
|
+
"flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",
|
|
28
|
+
location.pathname === item.href
|
|
29
|
+
? "bg-primary text-primary-foreground"
|
|
30
|
+
: "hover:bg-muted"
|
|
31
|
+
)}
|
|
32
|
+
>
|
|
33
|
+
{item.label}
|
|
34
|
+
</Link>
|
|
35
|
+
))}
|
|
36
|
+
</nav>
|
|
37
|
+
</aside>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
2
|
+
|
|
3
|
+
export const Route = createFileRoute("/dashboard/")({
|
|
4
|
+
component: DashboardIndex,
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
function DashboardIndex() {
|
|
8
|
+
return (
|
|
9
|
+
<div className="space-y-6">
|
|
10
|
+
<h1 className="text-3xl font-bold">Dashboard</h1>
|
|
11
|
+
<p className="text-muted-foreground">Welcome to your dashboard.</p>
|
|
12
|
+
{/* Add dashboard widgets here */}
|
|
13
|
+
</div>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Outlet, createFileRoute, Link } from "@tanstack/react-router";
|
|
2
|
+
import { Button } from "~/components/ui/button";
|
|
3
|
+
|
|
4
|
+
export const Route = createFileRoute("/{{name}}")({
|
|
5
|
+
component: MarketingLayout,
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
function MarketingLayout() {
|
|
9
|
+
return (
|
|
10
|
+
<div className="min-h-screen">
|
|
11
|
+
<header className="border-b">
|
|
12
|
+
<div className="container flex h-16 items-center justify-between">
|
|
13
|
+
<Link to="/" className="text-xl font-bold">
|
|
14
|
+
Your App
|
|
15
|
+
</Link>
|
|
16
|
+
<nav className="flex items-center gap-4">
|
|
17
|
+
<Link to="/features" className="text-sm hover:underline">
|
|
18
|
+
Features
|
|
19
|
+
</Link>
|
|
20
|
+
<Link to="/pricing" className="text-sm hover:underline">
|
|
21
|
+
Pricing
|
|
22
|
+
</Link>
|
|
23
|
+
<Button asChild size="sm">
|
|
24
|
+
<Link to="/login">Get Started</Link>
|
|
25
|
+
</Button>
|
|
26
|
+
</nav>
|
|
27
|
+
</div>
|
|
28
|
+
</header>
|
|
29
|
+
<main>
|
|
30
|
+
<Outlet />
|
|
31
|
+
</main>
|
|
32
|
+
<footer className="border-t py-8">
|
|
33
|
+
<div className="container text-center text-sm text-muted-foreground">
|
|
34
|
+
© 2024 Your App. All rights reserved.
|
|
35
|
+
</div>
|
|
36
|
+
</footer>
|
|
37
|
+
</div>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
2
|
+
|
|
3
|
+
export const Route = createFileRoute("/{{name}}/")({
|
|
4
|
+
component: {{pascalName}}Index,
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
function {{pascalName}}Index() {
|
|
8
|
+
return (
|
|
9
|
+
<div className="container py-16 space-y-8">
|
|
10
|
+
<h1 className="text-4xl font-bold">Welcome</h1>
|
|
11
|
+
<p className="text-lg text-muted-foreground">
|
|
12
|
+
Build your marketing page here.
|
|
13
|
+
</p>
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { {{componentName}}Content } from "./{{componentName}}Content";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
2
|
+
import { {{componentName}}Content } from "~/components/{{componentFolder}}";
|
|
3
|
+
|
|
4
|
+
export const Route = createFileRoute("/{{name}}")({
|
|
5
|
+
component: {{componentName}}Page,
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
function {{componentName}}Page() {
|
|
9
|
+
return <{{componentName}}Content />;
|
|
10
|
+
}
|