import React, { useState, useEffect } from 'react'; import { useDesignMode } from './DesignModeContext'; // Tailwind Presets (Copied from InteractiveDemo) const TAILWIND_PRESETS = { bgColors: [ { label: 'White', value: 'bg-white' }, { label: 'Slate 50', value: 'bg-slate-50' }, { label: 'Blue 50', value: 'bg-blue-50' }, { label: 'Blue 100', value: 'bg-blue-100' }, { label: 'Blue 600', value: 'bg-blue-600' }, { label: 'Red 50', value: 'bg-red-50' }, { label: 'Green 50', value: 'bg-green-50' }, ], textColors: [ { label: 'Slate 900', value: 'text-slate-900' }, { label: 'Slate 600', value: 'text-slate-600' }, { label: 'Blue 600', value: 'text-blue-600' }, { label: 'White', value: 'text-white' }, { label: 'Red 600', value: 'text-red-600' }, ], fontSizes: [ { label: 'Small', value: 'text-sm' }, { label: 'Base', value: 'text-base' }, { label: 'Large', value: 'text-lg' }, { label: 'XL', value: 'text-xl' }, { label: '2XL', value: 'text-2xl' }, { label: '4XL', value: 'text-4xl' }, ], paddings: [ { label: '0', value: 'p-0' }, { label: '2', value: 'p-2' }, { label: '4', value: 'p-4' }, { label: '6', value: 'p-6' }, { label: '8', value: 'p-8' }, { label: '12', value: 'p-12' }, ], rounded: [ { label: 'None', value: 'rounded-none' }, { label: 'Small', value: 'rounded-sm' }, { label: 'Medium', value: 'rounded-md' }, { label: 'Large', value: 'rounded-lg' }, { label: 'Full', value: 'rounded-full' }, ] }; export const DesignModeUI: React.FC = () => { const { isDesignMode, toggleDesignMode, selectedElement, modifyElementClass, modifications, resetModifications } = useDesignMode(); const [currentClasses, setCurrentClasses] = useState(''); useEffect(() => { if (selectedElement) { setCurrentClasses(selectedElement.className); } else { setCurrentClasses(''); } }, [selectedElement, modifications]); const modifyClass = (newClass: string) => { if (!selectedElement) return; modifyElementClass(selectedElement, newClass); }; return (
{/* Main Toggle */}
{/* Edit Panel */} {isDesignMode && selectedElement && (

Edit Element

{selectedElement.tagName.toLowerCase()}{selectedElement.id ? `#${selectedElement.id}` : ''}
{/* Background */}
{TAILWIND_PRESETS.bgColors.map(preset => (
{/* Text Color */}
{TAILWIND_PRESETS.textColors.map(preset => ( ))}
{/* Padding */}
{TAILWIND_PRESETS.paddings.map(preset => ( ))}
{/* Rounded */}
{TAILWIND_PRESETS.rounded.map(preset => ( ))}
)}
); };