# Design Specification: Smart Intake - Identification State

**Screen ID:** FIL-003-B
**State:** 2 of 3 (Identify)
**Context:** Occurs immediately after a successful barcode/QR scan.
**Objective:** Validate the identity of the spool before committing it to the inventory.

---

## 1. User Experience Goals
- **Frictionless Validation:** If the scan is high-confidence, the user should only need to tap "Confirm".
- **Error Correction:** Provide easy paths to correct misidentified attributes without restarting the entire flow.
- **Glanceability:** Use color-coded confidence bars so the user knows immediately if the system is "sure" or "guessing".

---

## 2. Visual Hierarchy & Layout

### 2.1 Global Header
- **Top App Bar:** `md-top-app-bar` (Small).
  - **Leading:** Close icon (✕) -> Returns to Inventory with "Discard changes?" prompt.
  - **Title:** "Smart Intake"
- **Step Indicator:** Custom linear stepper.
  - `Scan` (Completed: Green check) $\rightarrow$ `Identify` (Active: Blue filled) $\rightarrow$ `Update` (Pending: Grey outline).

### 2.2 Main Content Area
The content is organized as a vertical stack of cards/inputs to ensure touch-first accessibility.

#### A. Confidence Card (`md-card` - filled)
- **Label:** "Scanned: [Barcode Value]" (Monospace)
- **Confidence Metric:** "Match: HIGH CONFIDENCE"
- **Visual Indicator:** A linear progress bar.
  - **High (≥80%):** Success Green (`#16A34A` / `#4ADE70`)
  - **Medium (40-79%):** Warning Yellow (`#CA8A04` / `#FACC15`)
  - **Low (<40%):** Error Red (`#DC2626` / `#F87171`)
- **Percentage:** Displayed as text (e.g., "92%") at the end of the bar.

#### B. Attribute Selection (Input Group)
- **Material Selector:** `md-dropdown-select` (Searchable).
  - *Pre-fill:* Based on scan result.
- **Brand Selector:** `md-dropdown-select` (Searchable).
  - *Pre-fill:* Based on scan result.
- **Color Picker:** Custom circular swatch grid.
  - **Interaction:** Tap to select. Selected swatch has a high-contrast ring indicator.
  - **Custom Option:** A "Custom" button that opens a text input for unique colors.
- **Finish & Modifier:** `md-chip-set` (Single select).
  - **Finish:** [Basic, Matte, Silk, Sparkle, Metallic, Translucent]
  - **Modifier:** [None, Carbon Fiber, Wood Fill, Glow-in-Dark, Marble, Gradient]

### 2.3 Action Bar (Footer)
- **Rescan Button:** `md-outlined-button`. Transitions user back to State 1 (Scan).
- **Confirm Button:** `md-filled-button`. Primary CTA. Transitions user to State 3 (Update).
  - *Constraint:* Disabled until Material, Brand, and Color are selected.

---

## 3. Technical Specifications

### 3.1 Dimensions & Touch Targets
- **Touch Targets:** Minimum 44x44px for all buttons, dropdowns, and swatches.
- **Padding:** 16px internal card padding; 24px external margin between major sections.
- **Typography:**
  - Title: `Display Small` (text-3xl font-bold)
  - Section Labels: `Label Medium` (text-sm font-medium)
  - Value Text: `Body Large` (text-base font-normal)

### 3.2 Theme Mapping
| Element | Kiosk (Dark) | Mobile (Light) |
|-----------|--------------|---------------|
| Background | `#0F172A` | `#F8FAFC` |
| Surface | `#1E293B` | `#FFFFFF` |
| Primary | `#60A5FA` | `#2563EB` |
| Text Primary | `#F1F5F9` | `#0F172A` |
| Text Secondary| `#94A3B8` | `#475569` |

---

## 4. State Transitions

### Transition: Scan $\rightarrow$ Identify
- **Trigger:** Barcode detected and decoded.
- **Animation:** 
  1. Scanning frame flashes **Green**.
  2. A "Slide-in" transition from the right (300ms ease-out).
  3. Step indicator dot for "Scan" transforms into a checkmark.
  4. Step indicator dot for "Identify" fills with Primary color.

### Transition: Identify $\rightarrow$ Update
- **Trigger:** "Confirm" button tapped.
- **Animation:**
  1. Slide-in transition from the right (300ms ease-out).
  2. Step indicator dot for "Identify" transforms into a checkmark.
  3. Step indicator dot for "Update" fills with Primary color.

---

## 5. Edge Cases & Error Handling
- **No Match Found:** Confidence bar is Red (0%). All dropdowns are empty. System displays a hint: "Barcode unknown. Please enter details manually."
- **Ambiguous Match:** Confidence bar is Yellow. Material and Brand are pre-filled, but Color is highlighted with a "Review Required" pulse.
- **Invalid Input:** If a user attempts to confirm without required fields, the missing fields pulse Red.
