-
+
+ {/* Breadcrumbs */}
+
+
+
);
diff --git a/frontend/src/app/dev/docs/page.tsx b/frontend/src/app/dev/docs/page.tsx
index 8777d8a..9e278e5 100644
--- a/frontend/src/app/dev/docs/page.tsx
+++ b/frontend/src/app/dev/docs/page.tsx
@@ -9,6 +9,7 @@ import { BookOpen, Sparkles, Layout, Palette, Code2, FileCode, Accessibility, Li
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
+import { DevBreadcrumbs } from '@/components/dev/DevBreadcrumbs';
interface DocItem {
title: string;
@@ -98,8 +99,11 @@ const referencesDocs: DocItem[] = [
export default function DocsHub() {
return (
+ {/* Breadcrumbs */}
+
+
{/* Hero Section */}
-
+
diff --git a/frontend/src/app/dev/forms/page.tsx b/frontend/src/app/dev/forms/page.tsx
index bf58478..84c4d3d 100644
--- a/frontend/src/app/dev/forms/page.tsx
+++ b/frontend/src/app/dev/forms/page.tsx
@@ -11,8 +11,9 @@ import Link from 'next/link';
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import { z } from 'zod';
-import { ArrowLeft, CheckCircle2, Loader2 } from 'lucide-react';
+import { CheckCircle2, Loader2 } from 'lucide-react';
import { Button } from '@/components/ui/button';
+import { DevBreadcrumbs } from '@/components/dev/DevBreadcrumbs';
import {
Card,
CardContent,
@@ -94,26 +95,12 @@ export default function FormsPage() {
};
return (
-
- {/* Header */}
-
-
-
-
-
-
-
Form Patterns
-
- react-hook-form + Zod validation examples
-
-
-
-
+
+ {/* Breadcrumbs */}
+
{/* Content */}
-
+
{/* Introduction */}
diff --git a/frontend/src/app/dev/layouts/page.tsx b/frontend/src/app/dev/layouts/page.tsx
index 0a7a1ea..7325727 100644
--- a/frontend/src/app/dev/layouts/page.tsx
+++ b/frontend/src/app/dev/layouts/page.tsx
@@ -6,7 +6,8 @@
import type { Metadata } from 'next';
import Link from 'next/link';
-import { ArrowLeft, Grid3x3 } from 'lucide-react';
+import { Grid3x3 } from 'lucide-react';
+import { DevBreadcrumbs } from '@/components/dev/DevBreadcrumbs';
import { Button } from '@/components/ui/button';
import {
Card,
@@ -26,26 +27,12 @@ export const metadata: Metadata = {
export default function LayoutsPage() {
return (
-
- {/* Header */}
-
-
-
-
-
-
-
Layout Patterns
-
- Essential patterns for pages, dashboards, and forms
-
-
-
-
+
+ {/* Breadcrumbs */}
+
{/* Content */}
-
+
{/* Introduction */}
diff --git a/frontend/src/app/dev/spacing/page.tsx b/frontend/src/app/dev/spacing/page.tsx
index 710b232..a57d793 100644
--- a/frontend/src/app/dev/spacing/page.tsx
+++ b/frontend/src/app/dev/spacing/page.tsx
@@ -7,7 +7,8 @@
import type { Metadata } from 'next';
import dynamic from 'next/dynamic';
import Link from 'next/link';
-import { ArrowLeft, Ruler } from 'lucide-react';
+import { Ruler } from 'lucide-react';
+import { DevBreadcrumbs } from '@/components/dev/DevBreadcrumbs';
import { Button } from '@/components/ui/button';
import {
Card,
@@ -41,26 +42,12 @@ export const metadata: Metadata = {
export default function SpacingPage() {
return (
-
- {/* Header */}
-
-
-
-
-
-
-
Spacing Patterns
-
- Parent-controlled spacing philosophy
-
-
-
-
+
+ {/* Breadcrumbs */}
+
{/* Content */}
-
+
{/* Introduction */}
diff --git a/frontend/src/components/dev/ComponentShowcase.tsx b/frontend/src/components/dev/ComponentShowcase.tsx
index 95e0ad7..8e0acc8 100644
--- a/frontend/src/components/dev/ComponentShowcase.tsx
+++ b/frontend/src/components/dev/ComponentShowcase.tsx
@@ -67,6 +67,7 @@ import {
TableRow,
} from '@/components/ui/table';
import { Example, ExampleGrid, ExampleSection } from './Example';
+import { DevBreadcrumbs } from './DevBreadcrumbs';
/**
* Component showcase
@@ -76,8 +77,11 @@ export function ComponentShowcase() {
return (
+ {/* Breadcrumbs */}
+
+
{/* Content */}
-
+
{/* Colors */}
+
+
+ {/* Home link */}
+ -
+
+
+ Hub
+
+
+
+ {/* Breadcrumb items */}
+ {items.map((item, index) => (
+ -
+
+ {item.href ? (
+
+ {item.label}
+
+ ) : (
+ {item.label}
+ )}
+
+ ))}
+
+
+
+ );
+}