diff --git a/GiftedDialog-Decomposition-Plan.md b/GiftedDialog-Decomposition-Plan.md
index ceb115db..2ebb842c 100644
--- a/GiftedDialog-Decomposition-Plan.md
+++ b/GiftedDialog-Decomposition-Plan.md
@@ -103,30 +103,36 @@ These components handle layout and entity organization:
- **Props**: `entityType`, `routeName`, `queryParams`
- **Emits**: None (uses router-link)
-### Phase 3: Extract Step Components (FUTURE)
+### Phase 3: Extract Step Components (✅ COMPLETED)
These components handle major UI sections:
-#### 7. EntitySelectionStep.vue (PLANNED)
+#### 8. EntitySelectionStep.vue ✅
- **Purpose**: Complete step 1 entity selection interface
- **Features**:
- - Dynamic step type handling (giver/recipient)
- - Entity type switching (people/projects)
- - Conflict detection integration
+ - Dynamic step labeling based on context
+ - EntityGrid integration for unified entity display
+ - Conflict detection and prevention
+ - Special entity handling (You, Unnamed)
+ - Show All navigation with context preservation
- Cancel functionality
-- **Props**: `stepType`, `entityType`, `entities`, `conflicts`, `context`
+ - Event delegation for entity selection
+- **Props**: `stepType`, `giverEntityType`, `recipientEntityType`, `showProjects`, `isFromProjectView`, `projects`, `allContacts`, `activeDid`, `allMyDids`, `conflictChecker`, `fromProjectId`, `toProjectId`, `giver`, `receiver`
- **Emits**: `entity-selected`, `cancel`
-#### 8. GiftDetailsStep.vue (PLANNED)
-- **Purpose**: Complete step 2 gift details form
+#### 9. GiftDetailsStep.vue ✅
+- **Purpose**: Complete step 2 gift details form interface
- **Features**:
- - Entity summary display
- - Gift description input
- - Amount input with controls
- - Form validation
- - Submit functionality
-- **Props**: `giver`, `receiver`, `context`, `initialValues`
-- **Emits**: `submit`, `back`, `entity-edit-requested`
+ - Entity summary display with edit capability
+ - Gift description input with placeholder support
+ - Amount input with increment/decrement controls
+ - Unit code selection (HUR, USD, BTC, etc.)
+ - Photo & more options navigation
+ - Conflict detection and warning display
+ - Form validation and submission
+ - Cancel functionality
+- **Props**: `giver`, `receiver`, `giverEntityType`, `recipientEntityType`, `description`, `amount`, `unitCode`, `prompt`, `isFromProjectView`, `hasConflict`, `offerId`, `fromProjectId`, `toProjectId`
+- **Emits**: `update:description`, `update:amount`, `update:unitCode`, `edit-entity`, `explain-data`, `submit`, `cancel`
### Phase 4: Refactor Main Component (FINAL)
@@ -154,12 +160,17 @@ These components handle major UI sections:
6. **SpecialEntityCard.vue** - Special entities (You, Unnamed) with conflict handling
7. **ShowAllCard.vue** - Show All navigation with router integration
+**Phase 3: Step Components**
+8. **EntitySelectionStep.vue** - Complete step 1 entity selection interface
+9. **GiftDetailsStep.vue** - Complete step 2 gift details form interface
+
### 🔄 Next Steps
-1. **Update GiftedDialog.vue** - Integrate Phase 1 & 2 components incrementally
+1. **Update GiftedDialog.vue** - Integrate all Phase 1-3 components
2. **Test integration** - Ensure functionality remains intact
3. **Create unit tests** - For all new components
4. **Performance validation** - Ensure no regression
+5. **Phase 4 planning** - Refactor main component to orchestration only
### 📋 Future Phases
@@ -303,6 +314,64 @@ These components handle major UI sections:
```
+### Using EntitySelectionStep in GiftedDialog
+
+```vue
+
+
+
+
+
+```
+
+### Using GiftDetailsStep in GiftedDialog
+
+```vue
+
+
+
+
+
+```
+
## Migration Strategy
### Backward Compatibility
@@ -342,4 +411,4 @@ The completed Phase 1 components (PersonCard, ProjectCard, EntitySummaryButton,
**Author**: Matthew Raymer
**Last Updated**: 2025-01-28
-**Status**: Phase 1 & 2 Complete, Integration Phase Next
\ No newline at end of file
+**Status**: Phase 1, 2 & 3 Complete, Integration Phase Ready
\ No newline at end of file
diff --git a/src/components/EntitySelectionStep.vue b/src/components/EntitySelectionStep.vue
new file mode 100644
index 00000000..54c57219
--- /dev/null
+++ b/src/components/EntitySelectionStep.vue
@@ -0,0 +1,235 @@
+/**
+ * EntitySelectionStep.vue - Entity selection step component
+ *
+ * Extracted from GiftedDialog.vue to handle the complete step 1
+ * entity selection interface with dynamic labeling and grid display.
+ *
+ * @author Matthew Raymer
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/GiftDetailsStep.vue b/src/components/GiftDetailsStep.vue
new file mode 100644
index 00000000..b6ab6330
--- /dev/null
+++ b/src/components/GiftDetailsStep.vue
@@ -0,0 +1,371 @@
+/**
+ * GiftDetailsStep.vue - Gift details step component
+ *
+ * Extracted from GiftedDialog.vue to handle the complete step 2
+ * gift details form interface with entity summaries and validation.
+ *
+ * @author Matthew Raymer
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Photo & more options…
+
+
+
+
+ Sign & Send to publish to the world
+
+
+
+
+
+
+
+ Cannot record: Same person selected as both giver and recipient
+