Skip to content

Components Overview ​

PIP AI components are organized by feature domain and follow Vue 3 Composition API conventions with <script setup> syntax.

Organization ​

app/components/
├── tabs/              # Top-level workflow tabs
├── floorplan/         # Floor plan editor & related UI
├── document-builder/  # Document builder components
│   └── sidebar/       # Sidebar sections
├── ui/                # Reusable UI primitives
│   ├── badge/
│   ├── button/
│   ├── input/
│   └── table/
└── *.vue              # Shared feature components

Conventions ​

  • Auto-imported — All components are auto-imported by Nuxt; no manual imports needed
  • <script setup> — All components use Vue 3 <script setup> syntax
  • TypeScript — Props and emits are typed using TypeScript interfaces
  • Tailwind CSS — Styling uses Tailwind utility classes
  • Composables — Business logic lives in app/composables/, not in components

Component Categories ​

Tab Components ​

Top-level components for the 5-tab project workflow.

Common Components ​

Shared components used across features — Header, Sidebar, Upload, Processing status.

Floor Plan Components ​

Interactive floor plan viewer, editor, thumbnails, and selection modals.

Document Builder Components ​

Drag-and-drop document builder with blocks, sidebar, and AI integration.

Spec Components ​

Spec matching panel, search modal, table views, and library management.

Project Components ​

Project cards, upload, creation, and settings modals.

UI Components ​

Reusable primitives — Button, Badge, Input, Table, ResizeHandle, LazyImage.

Built with VitePress