Files
metabuilder/docs/implementation/ATOMIC_STRUCTURE.md
2025-12-25 11:42:22 +00:00

11 KiB

Atomic Design Visual Guide

┌─────────────────────────────────────────────────────────────────────┐
│                        ATOMIC DESIGN HIERARCHY                       │
└─────────────────────────────────────────────────────────────────────┘

┌─────────────┐
│   ATOMS     │  Smallest building blocks
│  (shadcn)   │  Cannot be divided further
└──────┬──────┘
       │      Button, Input, Label, Badge, Avatar, etc.
       │
       │
       ▼
┌─────────────┐
│  MOLECULES  │  Simple combinations (2-5 atoms)
│  (6 total)  │  Single focused purpose
└──────┬──────┘
       │      • AppHeader (logo + nav buttons)
       │      • AppFooter (links + copyright)
       │      • GodCredentialsBanner (alert + text + button)
       │      • ProfileCard (avatar + labels + values)
       │      • SecurityWarningDialog (dialog + title + list + buttons)
       │      • PasswordChangeDialog (dialog + form + inputs + buttons)
       │
       ▼
┌─────────────┐
│  ORGANISMS  │  Complex features (many atoms/molecules)
│  (40+ total)│  Business logic included
└──────┬──────┘
       │
       ├─ BUILDERS
       │  • Builder (drag-drop interface)
       │  • Canvas (component renderer)
       │  • ComponentCatalog (searchable list)
       │  • PropertyInspector (dynamic forms)
       │
       ├─ EDITORS
       │  • SchemaEditor (Monaco + validation)
       │  • CodeEditor (Monaco + syntax highlighting)
       │  • LuaEditor (Monaco + security scan)
       │  • JsonEditor (Monaco + validation)
       │  • NerdModeIDE (full IDE panel)
       │
       ├─ MANAGERS
       │  • DatabaseManager (query interface)
       │  • UserManagement (CRUD operations)
       │  • PackageManager (install/uninstall)
       │  • CssClassManager (class library)
       │  • ThemeEditor (color customization)
       │
       └─ FEATURES
          • IRCWebchat (real-time chat)
          • WorkflowEditor (workflow config)
          • AuditLogViewer (log display)
          • ScreenshotAnalyzer (AI analysis)
       
       ▼
┌─────────────┐
│   PAGES     │  Complete views (Level 1-5)
│  (5 total)  │  Compose organisms together
└─────────────┘
       • Level1 (Landing page)
       • Level2 (User dashboard)
       • Level3 (Admin panel)
       • Level4 (God builder)
       • Level5 (Super God panel)


┌─────────────────────────────────────────────────────────────────────┐
│                      IMPORT PATH EXAMPLES                            │
└─────────────────────────────────────────────────────────────────────┘

// Atoms (basic UI elements)
import { Button, Input, Label, Badge } from '@/components/atoms'

// Molecules (simple composites)
import { 
  AppHeader, 
  ProfileCard,
  SecurityWarningDialog 
} from '@/components/molecules'

// Organisms (complex features)
import { 
  ComponentCatalog, 
  PropertyInspector,
  SchemaEditor,
  UserManagement 
} from '@/components/organisms'

// Pages
import Level4 from '@/components/Level4'


┌─────────────────────────────────────────────────────────────────────┐
│                     DEPENDENCY FLOW RULES                            │
└─────────────────────────────────────────────────────────────────────┘

✅ ALLOWED:
   Atoms → [nothing custom, only React/external]
   Molecules → Atoms
   Organisms → Atoms, Molecules, other Organisms
   Pages → Atoms, Molecules, Organisms

❌ FORBIDDEN:
   Atoms → Molecules or Organisms
   Molecules → Organisms
   
   
┌─────────────────────────────────────────────────────────────────────┐
│                   COMPONENT COMPOSITION EXAMPLE                      │
└─────────────────────────────────────────────────────────────────────┘

PAGE (Level4.tsx)
└─ Contains:
   ├─ AppHeader (molecule)
   │  └─ Button (atom)
   │  └─ Badge (atom)
   │
   ├─ ComponentCatalog (organism)
   │  ├─ Input (atom)
   │  ├─ Button (atom)
   │  └─ ScrollArea (atom)
   │
   ├─ PropertyInspector (organism)
   │  ├─ Label (atom)
   │  ├─ Input (atom)
   │  ├─ Select (atom)
   │  └─ Button (atom)
   │
   └─ SchemaEditor (organism)
      ├─ Dialog (atom)
      ├─ Button (atom)
      └─ MonacoEditor (external)


┌─────────────────────────────────────────────────────────────────────┐
│                    COMPLEXITY DECISION TREE                          │
└─────────────────────────────────────────────────────────────────────┘

Is it a single UI element?
│
├─ YES → ATOM (use shadcn/ui)
│         Examples: Button, Input, Badge
│
└─ NO → Is it 2-5 simple elements working together?
        │
        ├─ YES → MOLECULE
        │         Examples: FormField (Label + Input + Error)
        │                   CardHeader (Avatar + Title + Subtitle)
        │
        └─ NO → Is it a complex feature with logic?
                │
                └─ YES → ORGANISM
                          Examples: SchemaEditor, UserManagement


┌─────────────────────────────────────────────────────────────────────┐
│                         FILE STRUCTURE                               │
└─────────────────────────────────────────────────────────────────────┘

src/components/
│
├── atoms/
│   ├── index.ts                      # Re-exports shadcn components
│   └── README.md                     # Documentation
│
├── molecules/
│   ├── index.ts                      # Exports all molecules
│   ├── README.md                     # Documentation
│   └── [molecule components]         # Optional: move here or use exports
│
├── organisms/
│   ├── index.ts                      # Exports all organisms
│   ├── README.md                     # Documentation
│   └── [organism components]         # Optional: move here or use exports
│
├── ui/                               # shadcn components (unchanged)
│   └── [all shadcn components]
│
├── shared/                           # Shared utilities
│   ├── AppHeader.tsx                 # Molecule
│   └── AppFooter.tsx                 # Molecule
│
├── level1/                           # Level 1 sections
│   ├── HeroSection.tsx               # Organism
│   ├── FeaturesSection.tsx           # Organism
│   └── NavigationBar.tsx             # Organism
│
└── [Level1.tsx - Level5.tsx]         # Top-level pages


┌─────────────────────────────────────────────────────────────────────┐
│                         KEY BENEFITS                                 │
└─────────────────────────────────────────────────────────────────────┘

📦 MODULARITY
   Components are self-contained and reusable

🔍 DISCOVERABILITY  
   Easy to find components by complexity level

🧪 TESTABILITY
   Atoms and molecules test in isolation easily

📚 DOCUMENTATION
   Structure serves as living documentation

🎯 CONSISTENCY
   Shared atoms ensure visual consistency

⚡ DEVELOPMENT SPEED
   Compose features faster from existing parts

🔄 MAINTAINABILITY
   Changes to atoms propagate automatically

🎓 ONBOARDING
   New developers understand hierarchy quickly


┌─────────────────────────────────────────────────────────────────────┐
│                    QUICK REFERENCE COUNTS                            │
└─────────────────────────────────────────────────────────────────────┘

Atoms:        12+ (all from shadcn/ui)
Molecules:    6 (simple composites)
Organisms:    40+ (complex features)
Pages:        5 (Level 1-5)

Total Components: 60+


┌─────────────────────────────────────────────────────────────────────┐
│                      IMPLEMENTATION STATUS                           │
└─────────────────────────────────────────────────────────────────────┘

[✅] Documentation created (ATOMIC_DESIGN.md)
[✅] Component classification map (COMPONENT_MAP.md)
[✅] Visual guide (ATOMIC_STRUCTURE.md)
[✅] Index files with exports created
[✅] README files for each level
[⏳] Physical file migration (optional)
[⏳] Import path updates (can be gradual)
[⏳] Add to PRD