diff --git a/src/components/AmountInput.vue b/src/components/AmountInput.vue
new file mode 100644
index 00000000..d9284477
--- /dev/null
+++ b/src/components/AmountInput.vue
@@ -0,0 +1,226 @@
+/** * AmountInput.vue - Specialized amount input with increment/decrement
+controls * * Extracted from GiftedDialog.vue to handle numeric amount input *
+with increment/decrement buttons and validation. * * @author Matthew Raymer */
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/EntityGrid.vue b/src/components/EntityGrid.vue
new file mode 100644
index 00000000..795d0639
--- /dev/null
+++ b/src/components/EntityGrid.vue
@@ -0,0 +1,264 @@
+/** * EntityGrid.vue - Unified entity grid layout component * * Extracted from
+GiftedDialog.vue to provide a reusable grid layout * for displaying people,
+projects, and special entities with selection. * * @author Matthew Raymer */
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ {{ emptyStateMessage }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/EntitySelectionStep.vue b/src/components/EntitySelectionStep.vue
new file mode 100644
index 00000000..9798f42c
--- /dev/null
+++ b/src/components/EntitySelectionStep.vue
@@ -0,0 +1,254 @@
+/** * 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 */
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/EntitySummaryButton.vue b/src/components/EntitySummaryButton.vue
new file mode 100644
index 00000000..9b63f79d
--- /dev/null
+++ b/src/components/EntitySummaryButton.vue
@@ -0,0 +1,145 @@
+/** * EntitySummaryButton.vue - Displays selected entity with edit capability *
+* Extracted from GiftedDialog.vue to handle entity summary display * in the gift
+details step with edit functionality. * * @author Matthew Raymer */
+
+
+
+
+
+
+
+
+ {{ label }}
+
+
+ {{ entity?.name || "Unnamed" }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/GiftDetailsStep.vue b/src/components/GiftDetailsStep.vue
new file mode 100644
index 00000000..d7c98d3a
--- /dev/null
+++ b/src/components/GiftDetailsStep.vue
@@ -0,0 +1,416 @@
+/** * 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/GiftedDialog.vue b/src/components/GiftedDialog.vue
index f08f5b0b..e5c356fe 100644
--- a/src/components/GiftedDialog.vue
+++ b/src/components/GiftedDialog.vue
@@ -1,113 +1,108 @@
-
- {{ customTitle }}
-
-
+
+
+
+
-
-
- {{ libsUtil.UNIT_SHORT[unitCode] || unitCode }}
-
-
-
-
-
-
-
-
-
-
-
-
- Photo & more options ...
-
-
-
-
- Sign & Send to publish to the world
-
-
-
-
-
-
diff --git a/src/components/PersonCard.vue b/src/components/PersonCard.vue
new file mode 100644
index 00000000..e391cfff
--- /dev/null
+++ b/src/components/PersonCard.vue
@@ -0,0 +1,114 @@
+/** * PersonCard.vue - Individual person display component * * Extracted from
+GiftedDialog.vue to handle person entity display * with selection states and
+conflict detection. * * @author Matthew Raymer */
+
+
+
+
+
+ {{ person.name || person.did || "Unnamed" }}
+
+
+
+
+
+
+
diff --git a/src/components/ProjectCard.vue b/src/components/ProjectCard.vue
new file mode 100644
index 00000000..4bd41667
--- /dev/null
+++ b/src/components/ProjectCard.vue
@@ -0,0 +1,96 @@
+/** * ProjectCard.vue - Individual project display component * * Extracted from
+GiftedDialog.vue to handle project entity display * with selection states and
+issuer information. * * @author Matthew Raymer */
+
+
+
+
+
+ {{ project.name }}
+
+
+
+
+ {{ issuerDisplayName }}
+
+
+
+
+
+
+
diff --git a/src/components/ShowAllCard.vue b/src/components/ShowAllCard.vue
new file mode 100644
index 00000000..1895a0ef
--- /dev/null
+++ b/src/components/ShowAllCard.vue
@@ -0,0 +1,66 @@
+/** * ShowAllCard.vue - Show All navigation card component * * Extracted from
+GiftedDialog.vue to handle "Show All" navigation * for both people and projects
+entity types. * * @author Matthew Raymer */
+
+
+
+
+
+ Show All
+
+
+
+
+
+
+
+
diff --git a/src/components/SpecialEntityCard.vue b/src/components/SpecialEntityCard.vue
new file mode 100644
index 00000000..79bc2bc0
--- /dev/null
+++ b/src/components/SpecialEntityCard.vue
@@ -0,0 +1,135 @@
+/** * SpecialEntityCard.vue - Special entity display component * * Extracted
+from GiftedDialog.vue to handle special entities like "You" * and "Unnamed" with
+conflict detection and selection capability. * * @author Matthew Raymer */
+
+
+
+
+ {{ label }}
+
+
+
+
+
+
+
diff --git a/src/constants/app.ts b/src/constants/app.ts
index fe11952e..3e10ed69 100644
--- a/src/constants/app.ts
+++ b/src/constants/app.ts
@@ -15,11 +15,11 @@ export enum AppString {
PROD_IMAGE_API_SERVER = "https://image-api.timesafari.app",
TEST_IMAGE_API_SERVER = "https://test-image-api.timesafari.app",
- LOCAL_IMAGE_API_SERVER = "https://image-api.timesafari.app",
+ LOCAL_IMAGE_API_SERVER = "http://127.0.0.1:3001",
PROD_PARTNER_API_SERVER = "https://partner-api.endorser.ch",
TEST_PARTNER_API_SERVER = "https://test-partner-api.endorser.ch",
- LOCAL_PARTNER_API_SERVER = "https://partner-api.endorser.ch",
+ LOCAL_PARTNER_API_SERVER = "http://127.0.0.1:3002",
PROD_PUSH_SERVER = "https://timesafari.app",
TEST1_PUSH_SERVER = "https://test.timesafari.app",
diff --git a/src/libs/fontawesome.ts b/src/libs/fontawesome.ts
index b1768d38..5121f4c3 100644
--- a/src/libs/fontawesome.ts
+++ b/src/libs/fontawesome.ts
@@ -29,6 +29,7 @@ import {
faCircleCheck,
faCircleInfo,
faCircleQuestion,
+ faCircleRight,
faCircleUser,
faClock,
faCoins,
@@ -79,6 +80,7 @@ import {
faSquareCaretDown,
faSquareCaretUp,
faSquarePlus,
+ faThumbtack,
faTrashCan,
faTriangleExclamation,
faUser,
@@ -111,6 +113,7 @@ library.add(
faCircleCheck,
faCircleInfo,
faCircleQuestion,
+ faCircleRight,
faCircleUser,
faClock,
faCoins,
@@ -161,6 +164,7 @@ library.add(
faSquareCaretDown,
faSquareCaretUp,
faSquarePlus,
+ faThumbtack,
faTrashCan,
faTriangleExclamation,
faUser,
diff --git a/src/services/indexedDBMigrationService.ts b/src/services/indexedDBMigrationService.ts
index 88fb9d09..2ceccd47 100644
--- a/src/services/indexedDBMigrationService.ts
+++ b/src/services/indexedDBMigrationService.ts
@@ -11,10 +11,8 @@
* for safe migration of data between the two storage systems.
*
* Usage:
- * 1. Enable Dexie temporarily by setting USE_DEXIE_DB = true in constants/app.ts
- * 2. Use compareDatabases() to see differences between databases
- * 3. Use migrateContacts() and/or migrateSettings() to transfer data
- * 4. Disable Dexie again after migration is complete
+ * 1. Use compareDatabases() to see differences between databases
+ * 2. Use migrateContacts() and/or migrateSettings() to transfer data
*
* @author Matthew Raymer
* @version 1.0.0
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 93df58b6..80312dcc 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -118,62 +118,40 @@ Raymer * @version 1.0.0 */
-
-
-
-
-
What have you seen someone do?
-
-
-
-
- -
-
-
+
+
+
Record something given by:
+
+
+
+
+
+
+
+