diff --git a/src/index.css b/src/index.css index dcb2a1c..a32c152 100644 --- a/src/index.css +++ b/src/index.css @@ -69,6 +69,21 @@ canvas { display: grid; } +.docs-nav-group { + display: grid; + border-bottom: 2px solid #d8d0c4; +} + +.docs-nav-group h2 { + margin: 0; + padding: 13px 16px 8px; + color: #a9a196; + font-size: 10px; + font-weight: 800; + letter-spacing: 0.14em; + text-transform: uppercase; +} + .docs-sidebar a { color: #f4efe7; text-decoration: none; @@ -80,7 +95,7 @@ canvas { justify-content: space-between; min-height: 46px; padding: 0 16px; - border-bottom: 2px solid #d8d0c4; + border-top: 1px solid rgba(216, 208, 196, 0.35); color: #f4efe7; transition: background 160ms ease, diff --git a/src/pages/docs/DocsLayout.tsx b/src/pages/docs/DocsLayout.tsx index 8be87ed..4a4df6f 100644 --- a/src/pages/docs/DocsLayout.tsx +++ b/src/pages/docs/DocsLayout.tsx @@ -1,7 +1,7 @@ import { Link, Outlet } from "@tanstack/react-router"; import { Home } from "lucide-react"; import { DocsLanguageProvider } from "@/pages/docs/DocsLanguageProvider"; -import { docSections } from "@/pages/docs/docsSections"; +import { docGroups } from "@/pages/docs/docsSections"; export function DocsLayout(): React.JSX.Element { return ( @@ -20,22 +20,28 @@ export function DocsLayout(): React.JSX.Element { diff --git a/src/pages/docs/DocsRouteComponents.tsx b/src/pages/docs/DocsRouteComponents.tsx index 764e787..1e0e9d0 100644 --- a/src/pages/docs/DocsRouteComponents.tsx +++ b/src/pages/docs/DocsRouteComponents.tsx @@ -24,12 +24,24 @@ const LazyDocsTargetArchitecturePage = lazy(() => })), ); +const LazyDocsTechnicalEditorPage = lazy(() => + import("@/pages/docs/technical-editor/page").then((module) => ({ + default: module.DocsTechnicalEditorPage, + })), +); + const LazyDocsFeaturesPage = lazy(() => import("@/pages/docs/features/page").then((module) => ({ default: module.DocsFeaturesPage, })), ); +const LazyDocsEditorPage = lazy(() => + import("@/pages/docs/editor/page").then((module) => ({ + default: module.DocsEditorPage, + })), +); + export function DocsLayoutRoute(): React.JSX.Element { return ( @@ -62,6 +74,14 @@ export function DocsTargetArchitectureRoute(): React.JSX.Element { ); } +export function DocsTechnicalEditorRoute(): React.JSX.Element { + return ( + + + + ); +} + export function DocsFeaturesRoute(): React.JSX.Element { return ( @@ -69,3 +89,11 @@ export function DocsFeaturesRoute(): React.JSX.Element { ); } + +export function DocsEditorRoute(): React.JSX.Element { + return ( + + + + ); +} diff --git a/src/pages/docs/docsSections.ts b/src/pages/docs/docsSections.ts index 13444ce..ba46778 100644 --- a/src/pages/docs/docsSections.ts +++ b/src/pages/docs/docsSections.ts @@ -5,29 +5,56 @@ export interface DocSection { meta: string; } -export const docSections: DocSection[] = [ +export interface DocGroup { + label: string; + sections: DocSection[]; +} + +export const docGroups: DocGroup[] = [ { - path: "/docs", - title: "README", - subtitle: "Project overview", - meta: "01", + label: "Technical", + sections: [ + { + path: "/docs", + title: "README", + subtitle: "Project overview", + meta: "01", + }, + { + path: "/docs/architecture", + title: "Current Architecture", + subtitle: "Runtime structure", + meta: "02", + }, + { + path: "/docs/target-architecture", + title: "Target Architecture", + subtitle: "Next direction", + meta: "03", + }, + { + path: "/docs/technical-editor", + title: "Editor Technical Notes", + subtitle: "Implementation details", + meta: "04", + }, + ], }, { - path: "/docs/architecture", - title: "Architecture actuelle", - subtitle: "Runtime structure", - meta: "02", - }, - { - path: "/docs/target-architecture", - title: "Architecture cible", - subtitle: "Next direction", - meta: "03", - }, - { - path: "/docs/features", - title: "Fonctionnalités", - subtitle: "Implemented scope", - meta: "04", + label: "User", + sections: [ + { + path: "/docs/features", + title: "Features", + subtitle: "Implemented scope", + meta: "05", + }, + { + path: "/docs/editor", + title: "Editor User Guide", + subtitle: "Editing workflow", + meta: "06", + }, + ], }, ]; diff --git a/src/pages/docs/features/page.tsx b/src/pages/docs/features/page.tsx index 926259f..4d98230 100644 --- a/src/pages/docs/features/page.tsx +++ b/src/pages/docs/features/page.tsx @@ -7,8 +7,8 @@ export function DocsFeaturesPage(): React.JSX.Element { ); } diff --git a/src/router.tsx b/src/router.tsx index e33d81c..b3fddef 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -8,10 +8,12 @@ import { HomePage } from "@/pages/HomePage"; import { EditorPage } from "@/pages/editor/EditorPage"; import { DocsArchitectureRoute, + DocsEditorRoute, DocsFeaturesRoute, DocsLayoutRoute, DocsReadmeRoute, DocsTargetArchitectureRoute, + DocsTechnicalEditorRoute, } from "@/pages/docs/DocsRouteComponents"; const rootRoute = createRootRoute({ @@ -54,12 +56,24 @@ const docsTargetArchitectureRoute = createRoute({ component: DocsTargetArchitectureRoute, }); +const docsTechnicalEditorRoute = createRoute({ + getParentRoute: () => docsRoute, + path: "/technical-editor", + component: DocsTechnicalEditorRoute, +}); + const docsFeaturesRoute = createRoute({ getParentRoute: () => docsRoute, path: "/features", component: DocsFeaturesRoute, }); +const docsEditorRoute = createRoute({ + getParentRoute: () => docsRoute, + path: "/editor", + component: DocsEditorRoute, +}); + const routeTree = rootRoute.addChildren([ indexRoute, editorRoute, @@ -67,7 +81,9 @@ const routeTree = rootRoute.addChildren([ docsIndexRoute, docsArchitectureRoute, docsTargetArchitectureRoute, + docsTechnicalEditorRoute, docsFeaturesRoute, + docsEditorRoute, ]), ]);