# 360° Interior Viewer

### Overview <a href="#overview" id="overview"></a>

The `Interior Viewer` component displays an interactive 360° panoramic view of a vehicle's interior. It provides navigation controls for panning, zooming, and fullscreen viewing, allowing users to explore the interior of a vehicle in detail.

### Installation <a href="#installation" id="installation"></a>

The component is part of the Carpose application and requires no separate installation.

### Usage <a href="#usage" id="usage"></a>

To use the Interior Viewer component in a standard HTML page:

```html
<div 
  data-carpose-component="interior-viewer"
  data-api-key="your-api-key"
  data-identifier="your-identifier"
  data-vehicle-id="your-car-id"
></div>
```

### Configuration Attributes <a href="#configuration-attributes" id="configuration-attributes"></a>

The component reads configuration from data attributes on the provided element:

| Attribute                | Type   | Default | Description                                                                               |
| ------------------------ | ------ | ------- | ----------------------------------------------------------------------------------------- |
| `data-carpose-component` | string | -       | Identifies the component type, must be set to "interior-viewer"                           |
| `data-api-key`           | string | -       | API key for authentication with the Carpose backend services. Required for data fetching. |
| `data-identifier`        | string | -       | Identifier for the interior panorama image. Required if car-id is not provided.           |
| `data-vehicle-id`        | string | -       | ID of the car to display interior panorama for. Required if identifier is not provided.   |

### Features <a href="#features" id="features"></a>

* Interactive 360° panoramic view of vehicle interiors
* Navigation controls for:
  * Panning up, down, left, and right
  * Zooming in and out
  * Fullscreen viewing (on non-mobile devices)
* Loading indicator while panorama is being fetched
* Fallback screen when no interior panorama is available
* Overlay with usage hints

### Example <a href="#example" id="example"></a>

```html
<!-- Using identifier -->
<div 
  data-carpose-component="interior-viewer"
  data-api-key="your-api-key"
  data-identifier="vehicle-interior-123"
></div>

<!-- Using car ID -->
<div 
  data-carpose-component="interior-viewer"
  data-api-key="your-api-key"
  data-vehicle-id="550e8400-e29b-41d4-a716-446655440000"
></div>
```

### Behavior <a href="#behavior" id="behavior"></a>

1. **Data Loading**:
   * On initialization, the component fetches the interior panorama data from the API using either the provided identifier or car ID.
   * A loading screen is displayed while the image is being loaded.
   * If no panorama is available, a message is displayed indicating that no 360° interior view is available.
2. **Navigation Controls**:
   * Arrow buttons allow panning up, down, left, and right
   * Plus/minus buttons control zoom level
   * Fullscreen button toggles fullscreen mode (not available on mobile devices)
   * Users can also navigate by dragging the panorama with their mouse or touch gestures
3. **Responsive Behavior**:
   * The component adapts to the container size
   * Controls are accessible on both desktop and mobile devices
   * Fullscreen option is automatically disabled on mobile devices


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.carpose.de/components/360-interior-viewer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
