create-project-arch 1.0.0
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 +58 -0
- package/dist/cli.js +232 -0
- package/dist/cli.test.js +8 -0
- package/package.json +29 -0
- package/templates/arch-ui/.arch/edges/decision_to_domain.json +4 -0
- package/templates/arch-ui/.arch/edges/milestone_to_task.json +4 -0
- package/templates/arch-ui/.arch/edges/task_to_decision.json +4 -0
- package/templates/arch-ui/.arch/edges/task_to_module.json +4 -0
- package/templates/arch-ui/.arch/graph.json +17 -0
- package/templates/arch-ui/.arch/nodes/decisions.json +4 -0
- package/templates/arch-ui/.arch/nodes/domains.json +4 -0
- package/templates/arch-ui/.arch/nodes/milestones.json +4 -0
- package/templates/arch-ui/.arch/nodes/modules.json +4 -0
- package/templates/arch-ui/.arch/nodes/tasks.json +4 -0
- package/templates/arch-ui/app/api/architecture/map/route.ts +13 -0
- package/templates/arch-ui/app/api/decisions/route.ts +23 -0
- package/templates/arch-ui/app/api/domain-docs/route.ts +89 -0
- package/templates/arch-ui/app/api/domains/route.ts +10 -0
- package/templates/arch-ui/app/api/graph/route.ts +16 -0
- package/templates/arch-ui/app/api/health/route.ts +44 -0
- package/templates/arch-ui/app/api/node-files/route.ts +173 -0
- package/templates/arch-ui/app/api/phases/route.ts +10 -0
- package/templates/arch-ui/app/api/route.ts +22 -0
- package/templates/arch-ui/app/api/search/route.ts +56 -0
- package/templates/arch-ui/app/api/task-doc/[taskId]/route.ts +60 -0
- package/templates/arch-ui/app/api/tasks/route.ts +36 -0
- package/templates/arch-ui/app/api/trace/file/route.ts +40 -0
- package/templates/arch-ui/app/api/trace/task/[taskId]/route.ts +12 -0
- package/templates/arch-ui/app/architecture/page.tsx +5 -0
- package/templates/arch-ui/app/globals.css +240 -0
- package/templates/arch-ui/app/health/page.tsx +48 -0
- package/templates/arch-ui/app/layout.tsx +19 -0
- package/templates/arch-ui/app/page.tsx +5 -0
- package/templates/arch-ui/app/work/page.tsx +265 -0
- package/templates/arch-ui/components/app-shell.tsx +171 -0
- package/templates/arch-ui/components/error-boundary.tsx +53 -0
- package/templates/arch-ui/components/graph/arch-node.tsx +77 -0
- package/templates/arch-ui/components/graph/build-graph-from-dataset.ts +196 -0
- package/templates/arch-ui/components/graph/build-initial-graph.ts +245 -0
- package/templates/arch-ui/components/graph/graph-context-menu.tsx +84 -0
- package/templates/arch-ui/components/graph/graph-doc-panel.tsx +46 -0
- package/templates/arch-ui/components/graph/graph-types.ts +82 -0
- package/templates/arch-ui/components/graph/use-auto-layout.ts +65 -0
- package/templates/arch-ui/components/graph/use-connection-validation.ts +62 -0
- package/templates/arch-ui/components/graph/use-flow-persistence.ts +48 -0
- package/templates/arch-ui/components/graph-canvas.tsx +670 -0
- package/templates/arch-ui/components/health-panel.tsx +49 -0
- package/templates/arch-ui/components/inspector-context.tsx +35 -0
- package/templates/arch-ui/components/inspector.tsx +895 -0
- package/templates/arch-ui/components/markdown-viewer.tsx +74 -0
- package/templates/arch-ui/components/sidebar.tsx +531 -0
- package/templates/arch-ui/components/topbar.tsx +187 -0
- package/templates/arch-ui/components/work-table.tsx +57 -0
- package/templates/arch-ui/components/workspace-context.tsx +274 -0
- package/templates/arch-ui/eslint.config.js +2 -0
- package/templates/arch-ui/global.d.ts +1 -0
- package/templates/arch-ui/lib/api.ts +93 -0
- package/templates/arch-ui/lib/arch-model.ts +113 -0
- package/templates/arch-ui/lib/graph-dataset.ts +756 -0
- package/templates/arch-ui/lib/graph-schema.ts +408 -0
- package/templates/arch-ui/lib/project-root.ts +52 -0
- package/templates/arch-ui/lib/types.ts +116 -0
- package/templates/arch-ui/next-env.d.ts +6 -0
- package/templates/arch-ui/next.config.js +17 -0
- package/templates/arch-ui/package.json +38 -0
- package/templates/arch-ui/postcss.config.mjs +6 -0
- package/templates/arch-ui/tailwind.config.ts +11 -0
- package/templates/arch-ui/tsconfig.json +21 -0
- package/templates/ui-package/eslint.config.mjs +4 -0
- package/templates/ui-package/package.json +26 -0
- package/templates/ui-package/src/accordion.tsx +10 -0
- package/templates/ui-package/src/badge.tsx +12 -0
- package/templates/ui-package/src/button.tsx +32 -0
- package/templates/ui-package/src/card.tsx +22 -0
- package/templates/ui-package/src/code.tsx +6 -0
- package/templates/ui-package/src/command.tsx +18 -0
- package/templates/ui-package/src/dialog.tsx +6 -0
- package/templates/ui-package/src/dropdown-menu.tsx +10 -0
- package/templates/ui-package/src/input.tsx +6 -0
- package/templates/ui-package/src/navigation-menu.tsx +6 -0
- package/templates/ui-package/src/scroll-area.tsx +6 -0
- package/templates/ui-package/src/select.tsx +6 -0
- package/templates/ui-package/src/separator.tsx +6 -0
- package/templates/ui-package/src/sheet.tsx +6 -0
- package/templates/ui-package/src/skeleton.tsx +6 -0
- package/templates/ui-package/src/table.tsx +26 -0
- package/templates/ui-package/src/tabs.tsx +14 -0
- package/templates/ui-package/src/toggle-group.tsx +10 -0
- package/templates/ui-package/src/utils.ts +3 -0
- package/templates/ui-package/tsconfig.json +10 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@repo/ui",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"exports": {
|
|
6
|
+
"./*": "./src/*.tsx"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"lint": "eslint . --max-warnings 0",
|
|
10
|
+
"generate:component": "turbo gen react-component",
|
|
11
|
+
"check-types": "tsc --noEmit"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@repo/eslint-config": "workspace:*",
|
|
15
|
+
"@repo/typescript-config": "workspace:*",
|
|
16
|
+
"@types/node": "^22.15.3",
|
|
17
|
+
"@types/react": "19.2.2",
|
|
18
|
+
"@types/react-dom": "19.2.2",
|
|
19
|
+
"eslint": "^9.39.1",
|
|
20
|
+
"typescript": "5.9.2"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"react": "^19.2.0",
|
|
24
|
+
"react-dom": "^19.2.0"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DetailsHTMLAttributes, HTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
export function Accordion({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
5
|
+
return <div className={cn("ui-accordion", className)} {...props} />;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function AccordionItem({ className, ...props }: DetailsHTMLAttributes<HTMLDetailsElement>) {
|
|
9
|
+
return <details className={cn("ui-accordion-item", className)} {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
type BadgeVariant = "default" | "success" | "warning" | "danger" | "secondary";
|
|
5
|
+
|
|
6
|
+
export function Badge({
|
|
7
|
+
className,
|
|
8
|
+
variant = "default",
|
|
9
|
+
...props
|
|
10
|
+
}: HTMLAttributes<HTMLSpanElement> & { variant?: BadgeVariant }) {
|
|
11
|
+
return <span className={cn("ui-badge", `ui-badge-${variant}`, className)} {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
type ButtonVariant = "default" | "secondary" | "ghost" | "outline";
|
|
5
|
+
|
|
6
|
+
type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
variant?: ButtonVariant;
|
|
9
|
+
appName?: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const variantClass: Record<ButtonVariant, string> = {
|
|
13
|
+
default: "ui-btn ui-btn-default",
|
|
14
|
+
secondary: "ui-btn ui-btn-secondary",
|
|
15
|
+
ghost: "ui-btn ui-btn-ghost",
|
|
16
|
+
outline: "ui-btn ui-btn-outline",
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export function Button({
|
|
20
|
+
children,
|
|
21
|
+
className,
|
|
22
|
+
variant = "default",
|
|
23
|
+
appName,
|
|
24
|
+
...props
|
|
25
|
+
}: ButtonProps) {
|
|
26
|
+
void appName;
|
|
27
|
+
return (
|
|
28
|
+
<button className={cn(variantClass[variant], className)} {...props}>
|
|
29
|
+
{children}
|
|
30
|
+
</button>
|
|
31
|
+
);
|
|
32
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
export function Card({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
5
|
+
return <div className={cn("ui-card", className)} {...props} />;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
9
|
+
return <div className={cn("ui-card-header", className)} {...props} />;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {
|
|
13
|
+
return <h3 className={cn("ui-card-title", className)} {...props} />;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function CardDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {
|
|
17
|
+
return <p className={cn("ui-card-description", className)} {...props} />;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function CardContent({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
21
|
+
return <div className={cn("ui-card-content", className)} {...props} />;
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HTMLAttributes, InputHTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
export function Command({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
5
|
+
return <div className={cn("ui-command", className)} {...props} />;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function CommandInput({ className, ...props }: InputHTMLAttributes<HTMLInputElement>) {
|
|
9
|
+
return <input className={cn("ui-input", className)} {...props} />;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function CommandList({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
13
|
+
return <div className={cn("ui-command-list", className)} {...props} />;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function CommandItem({ className, ...props }: HTMLAttributes<HTMLButtonElement>) {
|
|
17
|
+
return <button type="button" className={cn("ui-command-item", className)} {...props} />;
|
|
18
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
export function DropdownMenu({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
5
|
+
return <div className={cn("ui-dropdown", className)} {...props} />;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function DropdownMenuItem({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {
|
|
9
|
+
return <span className={cn("ui-dropdown-item", className)} {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { HTMLAttributes, TableHTMLAttributes, TdHTMLAttributes, ThHTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
export function Table({ className, ...props }: TableHTMLAttributes<HTMLTableElement>) {
|
|
5
|
+
return <table className={cn("ui-table", className)} {...props} />;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function TableHeader({ className, ...props }: HTMLAttributes<HTMLTableSectionElement>) {
|
|
9
|
+
return <thead className={cn("ui-table-header", className)} {...props} />;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function TableBody({ className, ...props }: HTMLAttributes<HTMLTableSectionElement>) {
|
|
13
|
+
return <tbody className={cn("ui-table-body", className)} {...props} />;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function TableRow({ className, ...props }: HTMLAttributes<HTMLTableRowElement>) {
|
|
17
|
+
return <tr className={cn("ui-table-row", className)} {...props} />;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function TableHead({ className, ...props }: ThHTMLAttributes<HTMLTableCellElement>) {
|
|
21
|
+
return <th className={cn("ui-table-head", className)} {...props} />;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function TableCell({ className, ...props }: TdHTMLAttributes<HTMLTableCellElement>) {
|
|
25
|
+
return <td className={cn("ui-table-cell", className)} {...props} />;
|
|
26
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, HTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
export function Tabs({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
5
|
+
return <div className={cn("ui-tabs", className)} {...props} />;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function TabsList({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
9
|
+
return <div className={cn("ui-tabs-list", className)} {...props} />;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function TabsTrigger({ className, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {
|
|
13
|
+
return <button type="button" className={cn("ui-tabs-trigger", className)} {...props} />;
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, HTMLAttributes } from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
export function ToggleGroup({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
|
|
5
|
+
return <div className={cn("ui-toggle-group", className)} {...props} />;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function ToggleGroupItem({ className, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {
|
|
9
|
+
return <button type="button" className={cn("ui-toggle-item", className)} {...props} />;
|
|
10
|
+
}
|