+
+
+ Add Your First Site
+
+
+ We'll set up your site with optimized defaults for automated content publishing.
+
+
+
+ {error && (
+
+ )}
+
+ {/* Site Name */}
+
+
+ ) => updateData({ siteName: e.target.value })}
+ placeholder="My Awesome Blog"
+ className="w-full px-4 py-2 border border-gray-200 dark:border-gray-700 rounded-lg bg-white dark:bg-gray-900 text-gray-900 dark:text-white focus:ring-2 focus:ring-brand-500 focus:border-transparent"
+ />
+
+
+ {/* Website URL */}
+
+
+
+
+
) => updateData({ domain: e.target.value })}
+ placeholder="https://mysite.com"
+ className="w-full pl-10 pr-4 py-2 border border-gray-200 dark:border-gray-700 rounded-lg bg-white dark:bg-gray-900 text-gray-900 dark:text-white focus:ring-2 focus:ring-brand-500 focus:border-transparent"
+ />
+
+
+
+ {/* Industry Selection */}
+
+
+ {loadingIndustries ? (
+
Loading industries...
+ ) : (
+
({ value: i.slug, label: i.name }))}
+ value={selectedIndustry?.slug || ''}
+ onChange={(value) => {
+ const industry = industries.find(i => i.slug === value);
+ if (industry) handleIndustrySelect(industry);
+ }}
+ placeholder="Select an industry"
+ />
+ )}
+
+
+ {/* Sector Selection */}
+ {selectedIndustry && availableSectors.length > 0 && (
+
+
+
+ {availableSectors.map((sector: Sector) => {
+ const isSelected = data.selectedSectors.includes(sector.slug);
+ return (
+
+ handleSectorToggle(sector.slug)} className="flex items-center">
+ {isSelected && }
+ {sector.name}
+
+
+ );
+ })}
+
+ {data.selectedSectors.length > 0 && (
+
+ {data.selectedSectors.length} sector{data.selectedSectors.length !== 1 ? 's' : ''} selected
+
+ )}
+
+ )}
+
+ {/* Defaults Info */}
+
+
+
+
+
+ Optimized Defaults Applied
+
+
+ - • Auto-approval enabled
+ - • Auto-publish to site enabled
+ - • 3 articles/day limit
+ - • Publishing Mon-Fri at 9am, 2pm, 6pm
+
+
+ You can customize these in Site Settings anytime.
+
+
+
+
+
+ {/* Actions */}
+
+
+
+
+
+ );
+}
diff --git a/frontend/src/components/onboarding/steps/Step3ConnectIntegration.tsx b/frontend/src/components/onboarding/steps/Step3ConnectIntegration.tsx
new file mode 100644
index 00000000..8a3495b6
--- /dev/null
+++ b/frontend/src/components/onboarding/steps/Step3ConnectIntegration.tsx
@@ -0,0 +1,306 @@
+/**
+ * Step 3: Connect Integration
+ * WordPress plugin installation and connection test
+ */
+import React, { useState, useEffect } from 'react';
+import Button from '../../ui/button/Button';
+import { Card } from '../../ui/card';
+import Alert from '../../ui/alert/Alert';
+import Badge from '../../ui/badge/Badge';
+import {
+ ArrowRightIcon,
+ ArrowLeftIcon,
+ PlugInIcon,
+ CopyIcon,
+ CheckCircleIcon,
+ TimeIcon,
+ ArrowUpIcon,
+} from '../../../icons';
+import { integrationApi } from '../../../services/integration.api';
+import { useToast } from '../../ui/toast/ToastContainer';
+import type { WizardData } from '../OnboardingWizard';
+
+interface Step3ConnectIntegrationProps {
+ data: WizardData;
+ updateData: (updates: Partial