# Component inventory (`components.md`)

Structured JSON-like registry: `resources/design-system/components.php` (surfaced visually at `/dashboard/design-system` → Component Inventory).

Below is the human-readable index with **purpose + Blade path**. Not every marketing construct is encapsulated as `@include`; many compositions live directly in large page templates yet still constitute reusable *patterns* (documented accordingly).

## Global chrome

| Name | Blade path | Consumers |
| --- | --- | --- |
| App layout shell | `resources/views/layouts/app.blade.php` | All public SSR pages extending layout |
| Region banner | `components/region-banner.blade.php` | Layout header stack |
| Header / mega-nav | `components/header.blade.php` | Same |
| Footer mega matrix | `components/footer.blade.php` | Same |
| Sticky CTA bar | `components/sticky-cta-bar.blade.php` | Service + key conversion pages |

## Exploration & storytelling

| Name | Blade path | Notes |
| --- | --- | --- |
| Explore site section | `components/explore-site-section.blade.php` | Accepts booleans hiding sliders (`hideServicesSlider`, etc.). |
| Vertical story section | `components/vertical-landing/story-section.blade.php` | Used by programmatic vertical controllers. |

## Pricing / calculators

| Name | Blade path | Status |
| --- | --- | --- |
| Inline service pricing estimator | `components/service-pricing-calculator.blade.php` | Data backed by `data/service-pricing-context.php`; audit whether target page currently `@include`s before reuse. |

## SEO helpers (`components/seo/*`)

| File | Role |
| --- | --- |
| `breadcrumb-schema.blade.php` | Structured breadcrumb emission |
| `breadcrumbs.blade.php` | HTML trail |
| `faq-schema.blade.php` | Optional FAQ JSON-LD partial |
| `image.blade.php` | Responsive image hygiene macro |

Marketing pages additionally call `App\Helpers\SeoHelper` directly inside `@push('schema')` blocks.

## Representative page compositions (still “components” conceptually)

| Page | Blade path |
| --- | --- |
| Home | `pages/home.blade.php` |
| Services hub | `pages/services.blade.php` |
| Service detail canonical | `pages/service-detail.blade.php` |
| Service vs industry SEO | `pages/service-industry.blade.php` |
| Triple segment local | `pages/service-industry-location.blade.php` |
| Portfolio index/detail | `pages/portfolio.blade.php`, `pages/portfolio-detail.blade.php` |
| Calculator | `pages/calculator.blade.php` |
| Contact funnel | `pages/contact.blade.php` |
| Thank-you | `pages/thank-you.blade.php` |
| Vertical sample | `pages/verticals/restaurants.blade.php` |
| Dashboard leads | `dashboard/leads/index.blade.php`, `dashboard/leads/show.blade.php` |
| Dashboard design system hub | `dashboard/design-system/index.blade.php` |

## Variants / props cheatsheet

Whenever adding props to a Blade partial:

1. Document defaults at top `@php` or `@props`.
2. Provide usage snippet in markdown + structured PHP inventory.
3. Cross-link SEO schema expectations if textual content duplicated in JSON-LD.

## QA expectations

- Accessibility: headings, landmarks, icons with `aria-hidden`, focus viability.
- SEO: breadcrumbs + canonical alignment.
- Conversion: CTA redundancy appropriate to scroll depth.
- Localization: translations exist before shipping non-English indices.
